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

9ca4f795ace999d2c2ec1277abee336a.png

创建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文件,如下图

b444f660278b566f1f18e7602db268c6.png

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

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

package 

运行结果

4d2fdf1abccc33b92028babd25ea958f.png

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

package 

注册临时表

package 

运行结果

634bccaf39c3e899d3498b4e8c891254.png

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

代码演示

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

package 

运行效果

c77c6f34f3a260c70a4eb2d30e08b42e.png

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文件,在文件中编写如下内容

430e0e07cc30f5eaeee175f943c8499f.png

编写代码

package 

运行结果

RDD转换成DataFrame

f0cc134d6058fa75c3e6590fdac0408b.png

DataFrame转换成RDD

733b252015e7fb61935e646a9e90c9d4.png

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

代码演示

package 

运行结果

758c2368f6156941ff7b2f4dcabe0c76.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【原】npm 常用命令详解

今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块的朋友不可…

论文阅读 - CRNN

文章目录1 概述2 模型介绍2.1 输入2.2 Feature extraction2.3 Sequence modeling2.4 Transcription2.4.1 训练部分2.4.2 预测部分3 模型效果参考资料1 概述 CRNN(Convolutional Recurrent Neural Network)是2015年华科的白翔老师团队提出的,直至今日,仍…

python easygui_Python里的easygui库

想要用python开发一些简单的图形界面,于是接触了easygui库,由于这是新手教程,我会把它写的尽量简单,希望大家都能看懂。1.msgboxmsgbox( )有一个标题,内容和一个ok键(是可以更改的)。举个例子:import easyg…

Rust小技巧 - 让函数既可接受String或str,也可以返回String或str

文章目录1 场景说明2 解决方案2.1 允许不同的输入参数2.2 允许不同的输出参数2.3 让调用方来做处理参考资料1 场景说明 假设我们有一个函数foo,它既要允许&str也要允许String作为输入参数。或是既要允许&str也要允许String作为输出。&str和String之间的…

JSP九大内置对象(转载)

JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception 1、request对象 request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息&#xf…

recv发送失败 缓冲区太小_从 GFS 失败的架构设计来看一致性的重要性

作者简介 陈东明,饿了么北京技术中心架构组负责人,负责饿了么的产品线架构设计以及饿了么基础架 构研发工作。曾任百度架构师,负责百度即时通讯产品的架构设计。具有丰富的大规模系统构 建和基础架构的研发经验,善于复杂业务需求下…

Rust小技巧 - 把异步函数放进vector当中

文章目录1 场景说明2 解决方案2.1 无借用参数2.2 有借用参数参考资料1 场景说明 有些时候,我们希望将将异步函数放到vector当中,或者说是注册进vector当中,然后在某个地方遍历这个vector来实现对已经注册了的异步函数的调用。 Cargo.toml中…

好用的记事本_分类记事本软件哪个好用?大家推荐一个苹果手机用的分类记事本便签呗...

随着“互联网”的发展,现在都开始在软件上记事备忘了。那么,都有哪些好用的记事本软件可以选择使用呢?大家在选择记事本软件的时候,都有哪些标准呢?不知道大家的标准是什么,小编有一个不能妥协的标准&#…

tch-rs指南 - Tensor的基本操作

文章目录1 概述2 Tensor的基本操作2.1 Tensor的初始化(1)通过数组创建(2)通过默认方法创建(3)通过其他的tensor创建(4)通过opencv::core::Mat创建2.2 Tensor的属性2.3 Tensor的运算&…

命令行运行jmeter脚本

1、通过gui界面的jmeter创建一份脚本;2、打开cmd,切换到jmeter程序的Bin目录;3、执行jmeter.bat -n -t bookair_0613.jmx -l log_3.jtl;4、使用gui界面添加一个监听器,打开log_3.jtl文件,来分析测试结果。转载于:https…

bootstrap table 分页_Java入门007~springboot+freemarker+bootstrap快速实现分页功能

本节是建立在上节的基础上,上一节给大家讲了管理后台表格如何展示数据,但是当我们的数据比较多的时候我们就需要做分页处理了。这一节给大家讲解如何实现表格数据的分页显示。准备工作1,项目要引入freemarker和bootstrap,如果不知…

Rust小技巧 - 通过FFI编程运行tensorrt模型

文章目录1 概述2 使用说明2.1 配置说明2.2 修改c头文件2.3 编写build.rs2.4 测试参考资料1 概述 shouxieai/tensorRT_Pro是一个文档完善,效果也很不错的tensorrt库,里面有对yolov5,yolox,unet,bert,retina…

1+X web中级 Laravel学习笔记——查询构造器简介及新增、更新、删除、查询数据

一、新增数据 插入多条数据: 二、更新数据 更新某条数据: 自增某字段的值: 自减某字段的值: 自增的同时改变其他字段的值: 三、删除数据 四、查询 查面构造器查面数据 有以下几种方法 get(&…

【HTML5】Canvas画布

什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 画布是一个矩形区域,您可以控制其每一像素。 canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 * 添加 canvas 元素。规定元素的 id、宽度和高度: &l…

SynthText流程解读 - 不看代码不知道的那些事

文章目录1 概述2 流程解读2.1 生成文字mask2.2 plane2xyz的bug2.3 文字上色2.4 图像融合参考资料1 概述 SynthText是OCR领域生成数据集非常经典,且至今看来无人超越的方法。整体可以分为三个大的步骤,分别是生成文字的mask,这里用到了图像的…

python if name main 的作用_Python中if __name__ == '__main__':的作用和原理

if __name__ __main__:的作用 一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。因此 if __name__ main: 的作用就是控制这两种情况执行代码的过程&#x…