官方地址 http://spark.apache.org/sql/
Spark SQL是Spark用来处理结构化数据
的一个模块,它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQL查询引擎的作用。
SparkSQL使用的数据抽象是DataFrame ,DataFrame让Spark具备了处理大数据结构化数据的能力,它不仅比原来的RDD转换方式更加简单易用,而且获得了更高的计算能力。Spark 能够轻松实现从Mysql到DataFrame的转化,并且支持SQL查询。 DataFrame是一种以RDD为基础的分布式数据集,提供了详细的数据信息,就相当于关系数据库的一张表,每个RDD元素都是一个Java对象,即Person对象,但是无法知道Person对象的内部结构信息,而采用DataFrame时,Person对象内部机构信息一目了然。它包含Name,Age,并且知道每个字段的数据类型。
image.png
从Spark2.0以上版本开始,Spark使用全新的SparkSession接口代替Spark1.6的SQLContex以及HiveContext接口