You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PySpark中对DataFrame执行pivot透视转换操作

错误原因

groupBy("user_id").pivot("hashtag_id")执行后返回的是GroupedData类型对象,尚未完成聚合计算,没有生成可查询的DataFrame,因此无法直接调用show()方法。

正确实现代码

你需要对分组后的数据指定聚合规则,这里你需要保留原表的count值,直接使用sum("count")聚合即可,额外添加fillna(0)把用户未提及的话题标签的空缺值替换为0,就能得到你需要的输出格式:

# 执行行转列操作
result_df = hashtags_users_joined_grouped_df.groupBy("user_id") \
    .pivot("hashtag_id") \
    .sum("count") \
    .fillna(0)
# 重命名列符合你的输出要求
result_df = result_df.withColumnRenamed("user_id", "user")
# 查看结果
result_df.show()

代码说明

  • groupBy("user_id"):按用户ID进行分组
  • pivot("hashtag_id"):将hashtag_id字段的所有唯一值转换为新的列
  • sum("count"):对每组内的count字段求和,因为你的原数据中每组(单个用户+单个话题标签)只有一条记录,求和结果就等于原表的count值
  • fillna(0):将用户没有提及过的话题标签对应的空值替换为0,匹配你需要的输出格式

内容的提问来源于stack exchange,提问作者Mark Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:15:09