Spark SQL使用说明与DataFrame创建
版权声明:本文为博主原创文章,未经博主允许不得转载。
手动码字不易,请大家尊重劳动成果,谢谢
启动spark-shell
由于spark-shell演示具有显而易见的有点,因此本文主要基于spark-shell对Spark SQL的使用进行介绍
我使用的是最新版本的Spark 2.3.0来进行演示
如需spark-shell运行环境可以参考 https://blog.csdn.net/wang_wbq/article/details/79659358
首先我们启动spark-shell,等待进入Scala REPL:
创建DataFrame
Spark SQL的所有操作都是基于其内部定义的一个叫做DataFrame(Spark2.0后它变成了DataSet[Row]的类型别名)的结构的,因此,我们首先需要创建DataFrame。
创建DataFrame的方式有很多种,比如json\csv\parquet等,在Spark 2.0以后,可以通过sparkSession.read
得到DataFrameReader
来读取各种支持类型的文件,从而得到对应的DataFrame。
不过我们既然使用了spark-shell,就更随意一点了。如果你现在就是为了处理一份数据,那么你可以直接用sparkSession.read
里的方法来加载这份数据文件。如果你只是为了学习,或者研究某种数据结构的处理方式,那么你可以使用case class的方式来构造你的实验DataFrame:
case class DemoClass(arg0: Int, arg: String)
首先我们定义一个case class作为我们DataFrame的模版
之后我们造一些我们的测试数据:
scala> val test = (1 to 100).map(i => DemoClass(i, s"String_$i"))
test: scala.collection.immutable.IndexedSeq[DemoClass] = Vector(DemoClass(1,String_1), DemoClass(2,String