Spark的DataFrame创建实例
Spark的DataFrame创建实例
说明
-
是一个分布式数据集(是一个数据描述),封装了RDD和Schema信息,底层还是调用的RDD,我们可以像操作二维表的方式进行操作,简单来说,DataFream就是RDD和Schema信息的结合体
什么是DataFrames
-
与RDD类似,DataFrame也是一个分布式数据容器。然而DataFrame更像传统数据库的二维表格,除了数据以外,还记录数据的结构信息,即schema。同时,与Hive类似,DataFrame也支持嵌套数据类型(struct、array和map)。从API易用性的角度上看,DataFrame API提供的是一套高层的关系操作,比函数式的RDD API要更加友好,门槛更低。由于与R和Pandas的DataFrame类似,Spark DataFrame很好地继承了传统单机数据分析的开发体验。
创建一个DataFrames
创建文件
-
在本地创建一个文件,有三列,分别是id、name、age,用空格分隔,然后上传到hdfs上
hdfs dfs -put person.txt/
生成RDD
-
在spark shell执行下面命令,读取数据,将每一行的数据使用列分隔符分割
val lineRDD = sc.textFile("hdfs://min1:9000/person.txt").map(_.split(" "))
定义匹配类
-
定义case class(相当于表的schema)
case class Person(id:Int, name:String, age:Int)
关联数据
-
将RDD和case class关联
val personRDD = lineRDD.map(x => Person(x(0).toInt, x(1), x(2).toInt))
生成DataFrame
-
将RDD转换成DataFrame
val personDF = personRDD.toDF
显示
-
对DataFrame进行处理
personDF.show
上一篇:
JS实现多线程数据分片下载