1.DataFrame讲解
在Spark中,DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。DataFrame与RDD的主要区别在于,前者带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。这使得Spark SQL得以洞察更多的结构信息,从而对藏于DataFrame背后的数据源以及作用于DataFrame之上的变换进行了针对性的优化,最终达到大幅提升运行时效率的目标。反观RDD,由于无从得知所存数据元素的具体内部结构,Spark Core只能在stage层面进行简单、通用的流水线优化。
2.讲解所用spark和scala版本号
spark version 1.6.0,scala version 2.10.4。
3.创建SQLContext()实例
val sqlContext = new SQLContext(sc)
本次讲解以官网下载的spark-2.1.0里的spark-2.1.0\examples\src\main\resources\people.json为例讲解。
people.json具体数据及格式如下图所示:
4.通过read读入文件
val df = new SQLContext(sc).read.json("E:\\spark-2.1.0\\spark-2.1.0\\examples\\src\\main\\resources\\people.json")
5.通过show()查看结果
df.show()
5.完整代码及结果