Как преобразовать значения строк данных в динамические столбцы? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть dataFrame, как показано ниже

-----------------------------
|  A   |   B       |   C    |  
-----------------------------
|  1   |  col_1   |   val1   |  
|  1   |  col_2   |   val2   |  
|  1   |  col_3   |   val3   |  
|  1   |  col_4   |   val4   |  
-----------------------------

Мне нужно преобразовать это, как показано ниже

-----------------------------------------------
|  A   |  col_1  |   col_2  |   col_3 | col_4 |
-----------------------------------------------
|  1   |  val1   |  val2    |  val3  |  val4  |
-----------------------------------------------

Как это сделать с помощью scala + spark-sql?любая подсказка высоко ценится.

1 Ответ

0 голосов
/ 17 декабря 2018

a groupBy и предложение agg должно быть достаточно:

df.groupBy("A").pivot("B").agg(first("C"))

с помощью groupBy сначала вы группируете свои возможные значения, затем поворачиваетесь на основе ключевого столбца (B в вашем случае) и получаете значение (C)

ВХОД

df.show
+---+-----+----+
|  A|    B|   C|
+---+-----+----+
|  1|col_1|val1|
|  1|col_2|val2|
|  1|col_3|val3|
|  1|col_4|val4|
+---+-----+----+

ВЫХОД

+---+-----+-----+-----+-----+
|  A|col_1|col_2|col_3|col_4|
+---+-----+-----+-----+-----+
|  1| val1| val2| val3| val4|
+---+-----+-----+-----+-----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...