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
经验分享 程序员 微信小程序 职场和发展