创建DataFrame的几种方式

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

注意:

1. json文件中的json数据不能嵌套json格式数据。

2. DataFrame是一个一个Row类型的RDD,df.rdd()/df.javaRdd()。

3. 可以两种方式读取json格式的文件。

4. df.show()默认显示前20行数据。

5. DataFrame原生API可以操作DataFrame(不方便)。

6. 注册成临时表时,表中的列默认按ascii顺序显示列。

代码演示

在项目中新建一个目录用于存储sparksql文件,在文件中编写一个json文件,如下图

新建一个scala文件,编写代码读取json文件

需求:读取json文件中的数据信息并显示表结构信息

package 

运行结果

sparksql能够根据条件查询json文件中的数据(类似sql语句)

package 

注册临时表

package 

运行结果

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

代码演示

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

package 

运行效果

3、非json格式的RDD创建DataFrame

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

注意

  1. 自定义类要可序列化
  2. 自定义类的访问级别是Public

3. RDD转成DataFrame后会根据映射将字段按Assci码排序

4. 将DataFrame转换成RDD时获取字段两种方式,一种是df.getInt(0)下 标获取(不推荐使用),另一种是df.getAs(“列名”)获取(推荐使用)

代码演示

在项目的sparksql目录中新建一个person.txt文件,在文件中编写如下内容

编写代码

package 

运行结果

RDD转换成DataFrame

DataFrame转换成RDD

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

代码演示

package 

运行结果

dataframe 排序_疯狂Spark之DataFrame创建方式详解一(九)相关推荐

  1. dataframe 排序_如何对Pandas DataFrame进行自定义排序

    作者|B. Chen 编译|VK 来源|Towards Data Science Pandas DataFrame有一个内置方法sort_values(),可以根据给定的变量对值进行排序.该方法本身使 ...

  2. oracle mysql连接池配置文件_数据库连接池两种配置方式详解

    数据库连接池: 负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接 ...

  3. python跨域攻击教学_关于python 跨域处理方式详解

    因为浏览器的同源策略限制,不是同源的脚本不能操作其他源下面的资源,想操作另一个源下面的资源就属于跨域了,这里说的跨域是广义跨域,我们常说的代码中请求跨域,是狭义的跨域,即在脚本代码中向非同源域发送ht ...

  4. rust如何在木板上上传图片_腐蚀rust游戏玩法方式详解

    在腐蚀这款游戏中玩家所有的物资都需要自己去寻找,不过很多时候遇到不怀好意的玩家时最好提高安全意识,及时躲避袭击,下面是游戏玩法发展方式详解. 游戏玩法方式详解 这里分两种发展方式 1.纯新手 首先需要 ...

  5. Spark SQL原理及常用方法详解(二)

    Spark SQL 一.Spark SQL基础知识 1.Spark SQL简介 (1)简单介绍 (2)Datasets & DataFrames (3)Spark SQL架构 (4)Spark ...

  6. Lesson13【加餐】 损失函数的随机创建现象详解

    [Lesson 13 加餐]损失函数的随机创建现象详解   接下来,我们通过手动创建一个实例,来观察在小批梯度下降过程中,损失函数是如何根据数据数据变化而变化的,这里既是作为本节内容的一个补充,同时也 ...

  7. python符号格式化设置区间_Python 数值区间处理_对interval 库的快速入门详解

    使用 Python 进行数据处理的时候,常常会遇到判断一个数是否在一个区间内的操作.我们可以使用 if else 进行判断,但是,既然使用了 Python,那我们当然是想找一下有没有现成的轮子可以用. ...

  8. Spark: sortBy和sortByKey函数详解

    在很多应用场景都需要对结果数据进行排序,Spark中有时也不例外.在Spark中存在两种对RDD进行排序的函数,分别是 sortBy和sortByKey函数.sortBy是对标准的RDD进行排序,它是 ...

  9. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

最新文章

  1. SAP HUM嵌套HU场景里是否可以直接对内层HU执行VLMOVE?
  2. 《数学之美》第7章 贾里尼克和现代语言处理
  3. 网络营销过程中如何避免网站的过度优化情况的发生?
  4. Git工具 - 子模块
  5. 汇编语言之寄存器(CPU工作原理)
  6. java jar包示例_Java包getImplementationTitle()方法和示例
  7. javascript优先级注意点
  8. Go Concurrency Patterns: Pipelines and cancellation
  9. SQL 执行计划的理解
  10. 计算机原理答题卡,答题卡阅卷机的基本工作原理及特点
  11. PLM基础概述(解决方案架构师认证:PLM基础) | 达索系统百世慧
  12. Android屏幕计算公式
  13. CVTE 后端开发面经
  14. GEE:批量下载数据,按月合成,不同景,全实验区域,一键执行
  15. 计算机未来发展报告,2020-2026年中国电子计算机行业发展深度调研与未来趋势报告...
  16. centos8代理上网_centos设置代理上网
  17. 印度理工学院有多难考?
  18. react+antd修改主题色
  19. linux手机拍照翻译软件,相机翻译器下载-相机拍照翻译appv1.0.2-Linux公社
  20. NFC读写芯片15693协议CLRC663国产替代DP1363F兼容详细对比资料

热门文章

  1. 关系与普通表的术语比较
  2. 网络爬虫--26.Scrapy中下载器中间件Downloader Middlewares的使用
  3. 如何拷贝工程_如何将premiere的工程及素材文件打包?
  4. 蒙特 卡罗方法matlab,蒙特·卡罗方法中的数学之美,你一定不想错过
  5. 功率曲线k值_什么叫离心泵的流量——功率曲线?它们之间有什么关系?
  6. linux检查swap配置,Linux环境下swap配置方法
  7. JDBC笔记-李伟杰版
  8. beeline连接hiveserver2报错:User: root is not allowed to impersonate root
  9. css摇曳的_HTML5+CSS3实现树被风吹动摇晃
  10. java取模多位数_JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...