PySpark技术实现:将JSON类型数据转换为表格形式
PySpark DataFrame 行转列实现方案
假设你的输入DataFrame结构是包含id、category、value三列(每行对应一个id的某个分类值),要转换为以id为唯一标识、各类别作为列的宽表,可以用PySpark的groupBy+pivot组合快速实现:
步骤1:导入必要函数
from pyspark.sql import functions as F
步骤2:执行行转列操作
假设你的原始DataFrame变量名为df,执行以下代码:
# 按id分组,将category的不同取值转为列,取对应value值 result_df = df.groupBy("id").pivot("category").agg(F.first("value"))
关键逻辑说明:
groupBy("id"):确保每个id最终对应结果表的一行pivot("category"):自动把category列里的所有唯一值转换成新的列名agg(F.first("value")):提取每个分组下对应类别的value值,如果你的数据里id+category是唯一组合,用F.first()、F.max()、F.min()效果一致
可选:处理空值
如果某些id没有对应类别的值,结果会出现空值,可按需填充:
# 将空值填充为0,也可以换成其他默认值 result_df = result_df.fillna(0)
内容的提问来源于stack exchange,提问作者Anjikya
相关产品推荐
相关产品推荐

