首页 热点资讯 义务教育 高等教育 出国留学 考研考公

疯狂Spark之DataFrame创建方式详解一(九)

发布网友

我来回答

1个回答

热心网友

创建DataFrame的几种方式:



1、读取json格式的文件创建DataFrame:




注意:



json文件中的json数据不能嵌套json格式数据。
DataFrame是一个一个Row类型的RDD,df.rdd()/df.javaRdd()。
可以两种方式读取json格式的文件。
df.show()默认显示前20行数据。
DataFrame原生API可以操作DataFrame(不方便)。
注册成临时表时,表中的列默认按ascii顺序显示列。


代码演示:



在项目中新建一个目录用于存储sparksql文件,在文件中编写一个json文件。
新建一个scala文件,编写代码读取json文件。
需求:读取json文件中的数据信息并显示表结构信息。
运行结果:sparksql能够根据条件查询json文件中的数据(类似sql语句)。
注册临时表。
运行结果:查询表中数据。




2、通过json格式的RDD创建DataFrame:




需求:建立两个json格式的RDD,将RDD注册成临时表,利用连接查询查询出表中学生姓名、年龄、成绩等信息。


运行效果:展示查询结果。





3、非json格式的RDD创建DataFrame通过反射的方式将非json格式的RDD转换成DataFrame(不建议使用):




注意:



RDD转成DataFrame后会根据映射将字段按Assci码排序
将DataFrame转换成RDD时获取字段两种方式:一种是df.getInt(0)下标获取(不推荐使用),另一种是df.getAs("列名")获取(推荐使用)


代码演示:



在项目的sparksql目录中新建一个person.txt文件,在文件中编写如下内容。
编写代码。
运行结果:展示RDD转换成DataFrame过程。
RDD转换成DataFrame。
DataFrame转换成RDD。




4、动态创建Schema将非json格式的RDD转换成DataFrame:




运行结果:展示转换过程和结果。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com