Транспонировать Spark DataFrame с помощью Scala - PullRequest
0 голосов
/ 06 июня 2019

У меня есть Spark DataFrame, который я хочу транспонировать. Я использую Spark и Scala. Я видел много постов, но ни один из них не ответил на мой вопрос.

Я пытался использовать Pivot. Но для этого используются групповые и агрегатные функции, которые возвращают одно значение в строке. Что не является моим ожидаемым результатом.

Ниже приведен Spark Dataframe, который у меня есть

a   b   c   d
x   1   10  555
y   2   20  556
z   3   30  557
l   4   40  558
x   5   50  559
m   6   60  560
y   7   70  561

Я хочу сделать столбец "a" значением в качестве новых столбцов и значение столбца "d" в виде строк.

Ниже вывод, который я ожидаю

x   y   z      l     m
555 556 557   558    560
559 561 null  null   null

Должно быть, если я хочу рассматривать два или более значения столбца как строки в выводе. Пример, если я хочу, чтобы значения столбцов "c" и "d" были как строки в выводе.

Я не могу получить решение. Я много пробовал.

Пожалуйста, помогите мне, как сделать транспонирование в искре и скале, как это.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 06 июня 2019

Вы можете получить Java список строк фрейма данных
List<Row> rows = df.collectAsList();
Map<String, List<Integer>> mapped = rows.stream().collect(Collectors.groupingBy(Row::get(0),Collectors.toList(Row::get(3))));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...