Spark DataFrame преобразует несколько строк в столбец

Я новичок, чтобы зажечь, и я хочупреобразование нижеисходный фрейм данных (загрузить из файла JSON):

+--+-----+-----+
|A |count|major|
+--+-----+-----+
| a|    1|   m1|
| a|    1|   m2|
| a|    2|   m3|
| a|    3|   m4|
| b|    4|   m1|
| b|    1|   m2|
| b|    2|   m3|
| c|    3|   m1|
| c|    4|   m3|
| c|    5|   m4|
| d|    6|   m1|
| d|    1|   m2|
| d|    2|   m3|
| d|    3|   m4|
| d|    4|   m5|
| e|    4|   m1|
| e|    5|   m2|
| e|    1|   m3|
| e|    1|   m4|
| e|    1|   m5|
+--+-----+-----+

В нижефрейм данных результата:

+--+--+--+--+--+--+
|A |m1|m2|m3|m4|m5|
+--+--+--+--+--+--+
| a| 1| 1| 2| 3| 0|
| b| 4| 2| 1| 0| 0|
| c| 3| 0| 4| 5| 0|
| d| 6| 1| 2| 3| 4|
| e| 4| 5| 1| 1| 1|
+--+--+--+--+--+--+

ЗдесьПравило трансформации:

Результирующий фрейм данных состоит изA + (n major columns) гдеmajor имена столбцов указываются с помощью:

sorted(src_df.map(lambda x: x[2]).distinct().collect())

Фрейм данных результата содержитm строки, где значения дляA столбец предоставлен:

sorted(src_df.map(lambda x: x[0]).distinct().collect())

Значение для каждого основного столбца в результирующем фрейме данных - это значение из исходного фрейма данных на соответствующемA и основной (например, число в строке 1 в исходном кадре данных отображается наbox гдеA являетсяa и колонкаm1)

СочетанияA а такжеmajor в исходном фрейме данных нет дублирования (пожалуйста, рассмотрите его как первичный ключ в двух столбцах в SQL)

Ответы на вопрос(2)

Ваш ответ на вопрос