【pyspark学习从入门到精通7】DataFrames_2
目录
创建 DataFrames
生成我们自己的 JSON 数据
创建 DataFrame
创建临时表
简单的 DataFrame 查询
DataFrame API 查询
SQL 查询
创建 DataFrames
通常,您会通过使用 SparkSession(或在 PySpark shell 中调用 spark)导入数据来创建 DataFrame。
我们将讨论如何将数据导入到本地文件系统、Hadoop 分布式文件系统(HDFS)或其他云存储系统(例如,S3 或 WASB)。在本文中,我们将专注于在 Spark 内直接生成您自己的 DataFrame 数据或利用 Databricks 社区版中已经可用的数据源。
首先,我们将不访问文件系统,而是通过生成数据来创建 DataFrame。在这种情况下,我们将首先创建 stringJSONRDD RDD,然后将其转换为 DataFrame。这段代码片段创建了一个包含游泳者(他们的 ID、姓名、年龄和眼睛颜色)的 JSON 格式的 RDD。
生成我们自己的 JSON 数据
下面,我们将最初生成 stringJSONRDD RDD:
stringJSONRDD = sc.parallelize(("""{ "id": "123",
"name": "Katie",
"age": 19,
"eyeColor": "brown"}""",
"""{
"id": "234",
"name": "Michael",
"age": 22,
"eyeColor": "green"}""",
"""{
"id": "345",
"name": "Simone",
"age": 23,
"eyeColor": "blue"}""")
)
现在我们已经创建了 RDD,我们将使用 SparkSession 的 read.json 方法(即 spark.read.json(...))将其转换为 DataFrame。我们还将使用 .createOrReplaceTempView 方法创建一个临时表。
创建 DataFrame
以下是创建 DataFrame 的代码:
swimmersJSON = spark.read.json(stringJSONRDD)
创建临时表
以下是创建临时表的代码:
swimmersJSON.createOrReplaceTempView("swimmersJSON")
如前文所述,许多 RDD 操作是转换,这些转换直到执行动作操作时才执行。例如,在前面的代码片段中,sc.parallelize 是一个转换,当使用 spark.read.json 从 RDD 转换为 DataFrame 时执行。注意,在这段代码的笔记本截图中(左下角附近),直到包含 spark.read.json 操作的第二个单元格,Spark 作业才执行。
为了进一步强调这一点,在下图的右侧窗格中,我们展示了执行的 DAG 图。
在下面的截图中,您可以看到 Spark 作业的 parallelize 操作来自生成 RDD stringJSONRDD 的第一个单元格,而 map 和 mapPartitions 操作是创建 DataFrame 所需的操作:
需要注意的是,parallelize、map 和 mapPartitions 都是 RDD 转换。在 DataFrame 操作 spark.read.json(在本例中)中,不仅有 RDD 转换,还有将 RDD 转换为 DataFrame 的动作。这是一个重要的说明,因为即使您正在执行 DataFrame 操作,要调试您的操作,您需要记住您将在 Spark UI 中理解 RDD 操作。
请注意,创建临时表是一个 DataFrame 转换,并且在执行 DataFrame 动作之前不会执行(例如,要执行的 SQL 查询)。
简单的 DataFrame 查询
现在您已经创建了 swimmersJSON DataFrame,我们将能够在其上运行 DataFrame API 以及 SQL 查询。让我们从一个简单的查询开始,显示 DataFrame 中的所有行。
DataFrame API 查询
要使用 DataFrame API 执行此操作,您可以使用 show(<n>) 方法,该方法将前 n 行打印到控制台:
# DataFrame API
swimmersJSON.show()
这将给出以下输出:
SQL 查询
如果您更倾向于编写 SQL 语句,您可以编写以下查询:
spark.sql("select * from swimmersJSON").collect()
这将给出以下输出:
我们使用了 .collect() 方法,它返回所有记录作为一个行对象(Row objects)的列表。请注意,您可以对 DataFrames 和 SQL 查询使用 collect() 或 show() 方法。只要确保,如果您使用 .collect(),这是针对小 DataFrame 的,因为它将返回 DataFrame 中的所有行,并将它们从执行器移回驱动程序。您可以改用 take(<n>) 或 show(<n>),这允许您通过指定 <n> 来限制返回的行数:
相关文章:

【pyspark学习从入门到精通7】DataFrames_2
目录 创建 DataFrames 生成我们自己的 JSON 数据 创建 DataFrame 创建临时表 简单的 DataFrame 查询 DataFrame API 查询 SQL 查询 创建 DataFrames 通常,您会通过使用 SparkSession(或在 PySpark shell 中调用 spark)导入数据来创建 …...

Server-Sent Event(SSE) GPT场景实现
关于SSE的基本概念可以看一下阮一峰老师的这篇文章:Server-Sent Events教程。 现在比较常见的场景是gpt回答的时候类似下图这种打字机的情况,因为AI一般响应时间会比较长,使用这种方式能让人别等那么久,是一个相对比较良好的用户…...

美国Honeywell霍尼韦尔气体分析侦测器传感器MIDAS-K-HCL说明书
上海德奥达 ---Honeywell霍尼韦尔气体分析侦测器传感器MIDAS-K-HCL是一款用于检测氯化氢气体的高性能传感器。以下是该传感器的技术参数和描述:技术参数:-测量范围:0-50ppm-灵敏度:0.5ppm-响应时间:≤30秒-电源&…...
L1练习-鸢尾花数据集处理(分类/聚类)
背景 前文(《AI 自学 Lesson1 - Sklearn(开源Python机器学习包)》)以鸢尾花数据集的处理为例,本文将完善其代码,在使用 sklearn 的部分工具包基础上,增加部分数据预处理、数据分析和数据可视化…...

javaweb以html方式集成富文本编辑器TinyMce
前言: 单一的批量图片上传按钮,禁用tinymce编辑器,但是还可以操作图片编辑; 多元化格式的富文本编辑要求; 采用tinymce实现。 附: tinymce中文手册网站: http://tinymce.ax-z.cn/download-all.…...

大学生福音!用GPT-4o几分钟内轻松读懂一篇论文!
文章目录 一、读论文智能体:PDFAI操作指导阅读论文上传论文并分析进一步研究导出可用代码 二、感受 一、读论文智能体:PDFAI 操作指导 ChatGPT 4o国内直接访问地址:https://share.xuzhugpt.cloud/ 上plus的车 输入购买的授权码即可。 默认…...

微信小程序昵称获取
<view class"shouquan_list"> <label>昵称</label> <input type"nickname" value"{{nichengshoudong}}" bindinput"bindKeyInputnicheng" placeholder"请输入昵称" placeholder-style"color:r…...

SQL进阶技巧:如何找出开会时间有重叠的会议室?| 时间区间重叠问题
目录 0 场景描述 1 数据准备 2 问题分析 方法1:利用 lateral view posexplode()函数将表展开成时间明细表 方法2:利用数学区间讨论思想求解 3 小结 如果觉得本文对你有帮助,想进一步学习SQL语言这门艺术的,那么不妨也可以选…...

Educational Codeforces Round 170 (Rated for Div. 2) D 题解
to sum of:前三题都是究极水题,补补D题吧,dp太钛肽弱了.. Problem - D - Codeforces--Attribute Checks 思路:首先得坚定地确定m^2,然后剩下的复杂度思考怎么优化.. key:每一个0只考虑影响到下一个0之间的数字!! 定义dp[i][j]为,在有i个能力点时.点了…...

NeRS: Neural Reflectance Surfaces for Sparse-view 3D Reconstruction in the Wild
阅读记录: 1. 2.优点1:我们的方法仅依赖于近似的相机位姿估计和粗略的类别级形状模板。 3.我们的关键见解是,我们可以强制执行基于表面的 3D 表示,而不是允许广泛用于体积表示的无约束密度。重要的是,这允许依赖于视…...

【Linux】su 命令的运行原理以及su切换用户默认继承环境配置
一、su 命令的运行原理 原理解释: su(switch user)命令用于在Linux和Unix系统中切换用户身份。 当你执行 su 命令时,系统会创建一个新的进程,通常是一个新的 shell 实例。这个新进程会以目标用户的身份运行&#…...

libtorch环境配置
环境配置 建议在linux上配置对应环境 可以在autoDL上租一个服务器来搭建,带有pytorch的环境 https://www.autodl.com/home 我自己的win电脑上安装了pytorch,但是配置时会报错,于是到ubuntu上配置 电脑上装有pytorch的就不需要再下载libtorc…...

【C语言】define宏定义与const修饰限定
两者都是将字符替换为相应的数值。 区别在于: #define宏定义纸进行字符串替换,无类型检查 const修饰符限定变量为只读变量 #include <stdio.h> #define PI 3.14159 //符号常量 /* 功能:宏定义与const修饰符限定 时间:20…...

基于深度学习的基于视觉的机器人导航
基于深度学习的视觉机器人导航是一种通过深度学习算法结合视觉感知系统(如摄像头、LiDAR等)实现机器人在复杂环境中的自主导航的技术。这种方法使机器人能够像人类一样使用视觉信息感知环境、规划路径,并避开障碍物。与传统的导航方法相比&am…...

苍穹外卖学习笔记(二十三)
拒单 OrderController /*** 拒单*/PutMapping("/rejection")ApiOperation("拒单")public Result rejection(RequestBody OrdersRejectionDTO ordersRejectionDTO) throws Exception {orderService.rejection(ordersRejectionDTO);return Result.success(…...

vLLM 推理引擎性能分析基准测试
文章目录 分析步骤案例案例描述测试数据集 原始数据〇轮测试(enable-64)一轮测试(enable-128)二轮测试(enable-256)三轮测试(enable-512)四轮测试(enable-2048࿰…...

图像增强论文精读笔记-Kindling the Darkness: A Practical Low-light Image Enhancer(KinD)
1. 论文基本信息 论文标题:Kindling the Darkness: A Practical Low-light Image Enhancer 作者:Yonghua Zhang等 发表时间和期刊:2019;ACM MM 论文链接:https://arxiv.org/abs/1905.04161 2. 研究背景和动机 现有…...

HALCON数据结构之字符串
1.1 String字符串的基本操作 *将数字转换为字符串或修改字符串 *tuple_string (T, Format, String) //HALCON语句 *String: T $ Format //赋值操作*Format string 由以下四个部分组成: *<flags><field width>.<precision><conversion 字符&g…...

string模拟优化和vector使用
1.简单介绍编码 utf_8变长编码,常用英文字母使用1个字节,对于其它语言可能2到14,大部分编码是utf_8,char_16是编码为utf_16, char_32是编码为utf_32, wchar_t是宽字符的, utf_16是大小为俩个字节&a…...

Go-知识依赖GOPATH
Go-知识依赖GOPATH 1. 介绍2. GOROOT 是什么3. GOPATH 是什么4. 依赖查找5. GOPATH 的缺点1. 介绍 早期Go语言单纯地使用GOPATH管理依赖,但是GOPATH不方便管理依赖的多个版本,后来增加了vendor,允许把项目依赖 连同项目源码一同管理。Go 1.11 引入了全新的依赖管理工具 Go …...

PyTorch 中 reshape 函数用法示例
PyTorch 中 reshape 函数用法示例 在 PyTorch 中,reshape 函数用于改变张量的形状,而不改变其中的数据。下面是一些关于 reshape 函数的常见用法示例。 基本语法 torch.reshape(input, shape) # input: 要重塑的张量。 # shape: 目标形状࿰…...

安全光幕的工作原理及应用场景
安全光幕是一种利用光电传感技术来检测和响应危险情况的先进设备。其工作原理基于红外线传感器,通过发射红外光束并接收反射或透射光束来形成一道无形的屏障。以下是对安全光幕工作原理和应用场景的介绍: 工作原理 发射器与接收器:安全光幕通…...

《深度学习》OpenCV LBPH算法人脸识别 原理及案例解析
目录 一、LBPH算法 1、概念 2、实现步骤 3、方法 1)步骤1 • 缩放 • 旋转和平移 2)步骤2 二、案例实现 1、完整代码 1)图像内容: 2)运行结果: 一、LBPH算法 1、概念 在OpenCV中,L…...

数据结构之顺序表——动态顺序表(C语言版)
静态顺序表我们已经实现完毕了,下来我们实现一下动态顺序表 静态链接:数据结构之顺序表——动态顺序表(C语言版) 首先来了解一下两个顺序表的差别 一、内存管理的灵活性 动态分配与释放:动态顺序表能够在运行时根据需要动态地分配和释放内存…...

Python 网络爬虫入门与实战
目录 1 引言 2 网络爬虫基础知识 2.1 什么是网络爬虫 2.2 爬虫的工作原理 2.3 爬虫的应用场景 3 Python 爬虫环境搭建 3.1 安装 Python 3.2 安装必要的库 4 使用 Requests 库进行基本爬虫 4.1 发送 GET 请求 4.2 发送 POST 请求 4.3 处理响应 5 使用 BeautifulSoup…...

成都睿明智科技有限公司电商服务可靠不?
在这个短视频风起云涌的时代,抖音不仅成为了人们娱乐消遣的首选平台,更是众多商家竞相追逐的电商新蓝海。成都睿明智科技有限公司,作为抖音电商服务领域的佼佼者,正以其独到的洞察力和专业的服务,助力无数品牌在这片沃…...

fmql之Linux Uart
正点原子第48章。 串口收发测试 正点原子教程 RS232和RS485的串口收发测试是一样的。 // 设置串口波特率为115200 stty -F /dev/ttyPS1 ispeed 115200 ospeed 115200 cs8// 发送字符串 echo "www.openedv.com" >/dev/ttyPS1// 接收数据 cat /dev/ttyPS1 fmql测…...

【火山引擎】调用火山大模型的方法 | SDK安装 | 配置 | 客户端初始化 | 设置
豆包 (Doubao) 是字节跳动研发的大规模预训练语言模型。 目录 1 安装 2 配置访问凭证 3 客户端初始化 4 设置地域和访问域名 5 设置超时/重试次数 1 安装 通过pip安装PYTHON SDK。 pip install volcengine-python-sdk[ark] 2 配置访问凭证 获取 API Key 访问凭证具体步…...

前端实现下载功能汇总(下载二进制流文件、数组下载成csv、将十六进制下载成pcap、将文件下载成zip)
前言:汇总一下做过的下载功能,持续补充中 一、将后端传过来的二进制流文件下载(需要提取headers里面的文件名) const { herders,data }res; // 创建下载链接元素 const link document.createElement("a");// 创建 Bl…...

iLogtail 开源两周年:UC 工程师分享日志查询服务建设实践案例
作者:UC 浏览器后端工程师,梁若羽 传统 ELK 方案 众所周知,ELK 中的 E 指的是 ElasticSearch,L 指的是 Logstash,K 指的是 Kibana。Logstash 是功能强大的数据处理管道,提供了复杂的数据转换、过滤和丰富…...