Транспонировать ряды pyspark в столбцы - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь перенести некоторые строки моего 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())

Предлагаемый вопрос может объединяться по числовым операциям.

1 Ответ

3 голосов
/ 04 апреля 2019

Использование 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|
+---------+-----+------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...