Spark sql简介

spark sql简介

sparksql是spark处理结构化数据的一个模块,它提供了一个编程抽象叫做dataframe,并作为分布式sql查询引擎的作用。
类比hive,是将hive sql转化为map reduce,然后提交到集群上执行,大大简化了程序的复杂性。由于mapreduce这种计算模型执行效率比较慢,所以spark sql应运而生。他将saprk sql转换为rdd,然后提交到集群执行,执行效率快,同时spark sql支持从hive读取数据。

spark sql特点

  1. 容易整合,集成

将sql查询和spark无缝集成

  1. 统一的数据访问方式

以相同方式连接到任何数据源

  1. 兼容hive

在现有仓库中使用hive查询

  1. 标准的数据连接

通过jdbc连接

基本概念 datasets和dataframes

dataframe
dataframe是组织成命名列的数据集,在概念上等同于关系型数据库中的表,但在底层具有更丰富的优化。dataframes可从多种来源构建。如结构化数据,hive中的表,外部数据库或者现有rdds。
dataframe类比rdd,多了数据的结构信息,即schema。rdd是分布式的java对象集合。dataframes是分布式row对象的集合。dataframe除了提供比rdd更丰富的算子外,更重要是提升计算效率,减少数据读取以及执行计划的优化。
datasets
datasets是数据的分布式集合,dataset是在spark1.6添加的新接口,是dataframe上更高级的抽象。它提供了rdd的优点(强类型化,使用lambda函数)以及spark sql优化后的执行引擎优点。一个dataset可以从jvm对象构造,然后使用函数转换去操作。dataset支持scala和java,不支持python
创建dataframe
通过case class创建dataframe
使用spark session
2.0引入了spark session,其为用户提供了一个统一的切入点来使用spark的各项功能,并允许用户调用他使用dataframe和dataset相关api来编写spark程序。

你可能感兴趣的:(spark)