Pyspark 对String列进行Pivot操作

该博客展示了如何在PySpark中对数据帧执行分组和透视操作,以根据'key_type'列聚合'cuid'列的'value'。通过使用first函数,将不同'key_type'的'value'值展示在单独的列中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:https://stackoverflow.com/questions/37486910/pivot-string-column-on-pyspark-dataframe
使用 from pyspark.sql.functions import first

import pyspark
import os 
from pyspark import SparkContext, SparkConf
from pyspark.sql.session import SparkSession
conf = SparkConf().setAppName('test_parquet')
sc = SparkContext('local', 'test', conf=conf)
spark = SparkSession(sc)
data = [("aaa", 1, 'x'), ("aaa", 2, 'xx'), ("bbb", 1, 'xxx'), ("ccc", 1, 'xxxx'),("ddd", 3, 'xxxx')]
column = ['cuid', 'key_type', 'value']
df = spark.createDataFrame(data=data, schema=column)
df.printSchema()
#root
# |-- cuid: string (nullable = true)
# |-- key_type: long (nullable = true)
# |-- value: string (nullable = true)
df.show(truncate=False)
#+----+--------+-----+                                                           
#|cuid|key_type|value|
#+----+--------+-----+
#|aaa |1       |x    |
#|aaa |2       |xx   |
#|bbb |1       |xxx  |
#|ccc |1       |xxxx |
#|ddd |3       |xxxx |
#+----+--------+-----+
from pyspark.sql.functions import first
df.groupby('cuid').pivot("key_type").agg(first("value")).show()
#+----+----+----+----+
#|cuid|   1|   2|   3|
#+----+----+----+----+
#| aaa|   x|  xx|null|
#| bbb| xxx|null|null|
#| ccc|xxxx|null|null|
#| ddd|null|null|xxxx|
#+----+----+----+----+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值