Spark SQL 是Spark用来处理数据的一个模块.它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用
它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduc的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所以Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快!
特点:
1.易整合
2 统一的数据访问方式
3.兼容Hive
4.标准的数据连接
SparkSQL 可以看做是一个转换层 向下对接各种不同的结构化数据源,向上提供不同的数据访问方式
在老的版本中,SparkSQL提供两种SQL查询起始点,一个叫SQLContext,用于Spark自己提供的SQL查询,一个叫HiveContext,用于连接Hive的查询,SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了sparkContext,所以计算实际上是由sparkContext完成的。
SparkSession.builder 用于创建一个SparkSession。
import spark.implicits._的引入是用于将DataFrames隐式转换成RDD,使df能够使用RDD中的方法。
如果需要Hive 支持 则需要创建一下语句