Spark的DataFrame创建实例

版权声明:版权声明中 https://blog.csdn.net/lds_include/article/details/89300074

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lds_include/article/details/89300074