PySpark3:Row对象常见操作以及Row、RDD、DataFrame互相转换

embedded/2024/11/20 14:59:08/

目录

一、Row对象常见操作

二、Row、RDD、DataFrame互相转换

1、RDD—>DataFrame

2、DataFrame—>RDD

3、DataFrame—>Row

4、Row—>DataFrame


一、Row对象常见操作

python">from pyspark.sql import Row# 创建一个Row对象
row = Row(name="张三", age=25)# 使用索引、字段名访问字段
print(row[0], row.name)  # 修改Row对象(通过转换为字典的方式进行修改)
dict_ = row.asDict()
dict_['age'] = 26 
del dict_['name']
dict_['姓名'] = "李四"
new_row = Row(**dict_)# 值迭代
for field in row:print(field)#判断是否包含某个字段
print("name" in row)# 获取字段数量
len(row)

二、Row、RDD、DataFrame互相转换

1、RDD—>DataFrame

python">from pyspark.sql import SparkSession
from pyspark.sql import Row# 初始化SparkSession
spark = SparkSession.builder.appName("test").getOrCreate()# 创建一个RDD
rdd = sc.parallelize([("Alice", 25), ("Bob", 30)])# 将RDD的元素转换为Row对象
row_rdd = rdd.map(lambda x: Row(name=x[0], age=x[1]))# 将Row RDD转换为DataFrame
df = spark.createDataFrame(row_rdd)
df.show()

2、DataFrame—>RDD

python"># 从DataFrame获取RDD
rdd_from_df = df.rdd# 进一步将RDD的元素转换为元组或其他格式
rdd_as_tuples = rdd_from_df.map(lambda row: (row.name, row.age))
rdd_as_tuples.collect()

3、DataFrame—>Row

DataFrame的每一行都是一个Row对象。

python"># 迭代DataFrame获取Row
for row in df.collect():print(f"name:{row.name} age:{row.age}")# 以下都会生成Row对象
df.limit(1)
df.first

4、Row—>DataFrame

python"># Row对象列表
rows = [Row(name="Alice", age=25), Row(name="Bob", age=30)]# 创建DataFrame
df = spark.createDataFrame(rows)
df.show()


http://www.ppmy.cn/embedded/139101.html

相关文章

使用dataGrip连接spark

概述: spark的配置共有5种 1、本地模式 2、集群模式:standalone, yarn,k8s,mesos四种集群模式 spark本身只是一个计算引擎,是没有数据库的,所以说数据需要在hdfs上存放,而数据库就…

高质量发展统计监测

我国经济迈向高质量发展,在统计标准和统计制度上采取了哪些措施及时监测反映经济转型发展状况? 随着我国经济从高速增长阶段转向高质量发展阶段,经济转型发展也对统计工作提出了新的要求。为服务我国高质量发展要求,为经济社会转…

Java基于微信小程序+SSM的校园失物招领小程序

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【单片机基础】通信接口(UART, SPI, I2C等)的工作方式

单片机(Microcontroller Unit, MCU)中的通信接口用于与外部设备进行数据交换。常见的通信接口包括UART(Universal Asynchronous Receiver/Transmitter)、SPI(Serial Peripheral Interface)和I2C&#xff08…

solana链上智能合约开发案例一则

环境搭建 安装Solana CLI:Solana CLI是开发Solana应用的基础工具。你可以通过官方文档提供的安装步骤,在本地环境中安装适合你操作系统的Solana CLI版本。安装完成后,使用命令行工具进行配置,例如设置网络环境(如开发网…

【ArcGISPro】使用AI模型提取要素-提取车辆(目标识别)

示例数据下载 栅格数据从网上随便找一个带有车辆的栅格数据 f094a6b1e205cd4d30a2e0f816f0c6af.jpg (1200799) (588ku.com) 添加数据

小米运动健康与华为运动健康在苹手机ios系统中无法识别蓝牙状态 (如何在ios系统中开启 蓝牙 相册 定位 通知 相机等功能权限,保你有用)

小米运动健康与华为运动健康在苹手机ios系统中无法识别蓝牙状态 (解决方案在最下面,参考蓝牙权限设置方式举一反三开启其它模块的权限) 最近买了一台小米手表s4,但是苹手机ios系统中的 “小米运动健康” app 始终无法识别我手机…

网络安全进阶

网络安全进阶知识涉及更深入的技术细节和高级防护措施。为了更详细地讲解网络安全的进阶知识,我们将每个关键领域和技术进一步展开,提供更多的背景信息、具体技术细节和实际应用案例。 1. 高级威胁检测与响应 威胁情报 (Threat Intelligence) 威胁情报…