【问题标题】:Transpose pyspark rows into columns将 pyspark 行转置为列
【发布时间】:2019-04-04 23:28:45
【问题描述】:

我正在尝试将我的一些 PySpark 数据帧行转换为列

我做了很多尝试,但我似乎无法得到正确的结果。

数据框目前看起来像这样

ArticleID   |Category  |Value
1            Color      Black
1            Gender     Male
2            Color      Green
2            Gender     Female
3            Color      Blue
3            Gender     Male

我想要得到的情况是

ArticleID   |Color  |Gender
1            Black   Male
2            Green   Female
3            Blue    Male

编辑:问题在某些领域可能相同,但这个问题需要对透视行的第一项进行聚合。

agg(f.first())

建议的问题可以聚合在数值运算上。

【问题讨论】:

标签: pyspark


【解决方案1】:

使用groupBy + pivot:

import pyspark.sql.functions as f
df.groupBy('ArticleID').pivot('Category').agg(f.first('Value')).show()
+---------+-----+------+
|ArticleID|Color|Gender|
+---------+-----+------+
|        3| Blue|  Male|
|        1|Black|  Male|
|        2|Green|Female|
+---------+-----+------+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多