将pyspark行转置为列

时间:2019-04-04 13:50:20

标签: pyspark

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

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

数据框目前看起来像这样

`Expected params.LogicalResourceId to be a string`

我想要得到的情况是

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

建议的问题可能会涉及数字运算。

1 个答案:

答案 0 :(得分:3)

使用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| +---------+-----+------+

return jsonify