spark: RDD与DataFrame之间的相互转换方法
作者:birdlove1987 时间:2023-06-09 23:24:04
DataFrame是一个组织成命名列的数据集。它在概念上等同于关系数据库中的表或R/Python中的数据框架,但其经过了优化。DataFrames可以从各种各样的源构建,例如:结构化数据文件,Hive中的表,外部数据库或现有RDD。
DataFrame API 可以被Scala,Java,Python和R调用。
在Scala和Java中,DataFrame由Rows的数据集表示。
在Scala API中,DataFrame只是一个类型别名Dataset[Row]。而在Java API中,用户需要Dataset<Row>用来表示DataFrame。
在本文档中,我们经常将Scala/Java数据集Row称为DataFrames。
那么DataFrame和spark核心数据结构RDD之间怎么进行转换呢?
代码如下:
# -*- coding: utf-8 -*-
from __future__ import print_function
from pyspark.sql import SparkSession
from pyspark.sql import Row
if __name__ == "__main__":
# 初始化SparkSession
spark = SparkSession \
.builder \
.appName("RDD_and_DataFrame") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
sc = spark.sparkContext
lines = sc.textFile("employee.txt")
parts = lines.map(lambda l: l.split(","))
employee = parts.map(lambda p: Row(name=p[0], salary=int(p[1])))
#RDD转换成DataFrame
employee_temp = spark.createDataFrame(employee)
#显示DataFrame数据
employee_temp.show()
#创建视图
employee_temp.createOrReplaceTempView("employee")
#过滤数据
employee_result = spark.sql("SELECT name,salary FROM employee WHERE salary >= 14000 AND salary <= 20000")
# DataFrame转换成RDD
result = employee_result.rdd.map(lambda p: "name: " + p.name + " salary: " + str(p.salary)).collect()
#打印RDD数据
for n in result:
print(n)
来源:https://blog.csdn.net/zhurui_idea/article/details/73090951
标签:spark,RDD,DataFrame
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python在线和离线安装第三方库的方法
2023-08-24 19:37:11
![](https://img.aspxhome.com/file/2023/8/62868_0s.png)
一文教你如何快速学会Go的struct数据类型
2024-02-14 22:58:44
老生常谈python之鸭子类和多态
2023-09-26 09:00:26
记录微信小程序 height: calc(xx - xx);无效问题
2024-05-02 16:27:16
MySQL安全问题的一点心得
2009-01-07 16:13:00
理解Python数据离散化手写if-elif语句与pandas中cut()方法实现
2023-02-24 10:33:33
网站的视觉设计
2008-08-15 12:58:00
解决mysql5中文乱码问题的方法
2024-01-15 07:47:52
OpenCV实现机器人对物体进行移动跟随的方法实例
2023-04-20 08:50:49
![](https://img.aspxhome.com/file/2023/0/90460_0s.jpg)
Python求导数的方法
2023-11-22 07:51:15
Python中的生成器和yield详细介绍
2022-11-11 12:34:24
爬虫框架 Feapder 和 Scrapy 的对比分析
2022-03-31 00:02:17
![](https://img.aspxhome.com/file/2023/8/65948_0s.jpg)
python广度优先搜索得到两点间最短路径
2023-09-05 02:06:24
![](https://img.aspxhome.com/file/2023/1/88981_0s.jpg)
asp sqlserver 执行存储过程返回记录集报对象关闭时不允许操作
2011-03-11 10:57:00
pandas 取出表中一列数据所有的值并转换为array类型的方法
2023-10-04 15:12:52
![](https://img.aspxhome.com/file/2023/9/86469_0s.jpg)
Python缓存方案优化程序性能提高数据访问速度
2022-04-11 20:36:15
python获取当前文件路径以及父文件路径的方法
2022-07-02 14:06:00
![](https://img.aspxhome.com/file/2023/6/134546_0s.jpg)
BOM中location对象的属性和方法
2024-04-16 09:55:07
![](https://img.aspxhome.com/file/2023/7/136497_0s.png)
如何决定是否将登录内容保存到Cookie里?
2009-12-16 18:54:00
网页布局的位置重心与位置间的对比关系
2007-10-15 19:20:00
![](https://img.aspxhome.com/file/UploadPic/200710/15/20071015192410224s.jpg)