Свести столбцы данных и имен искр - PullRequest
0 голосов
/ 14 мая 2018

Как можно развернуть массив внутри фрейма данных искры, чтобы результирующий фрейм данных содержал одну строку для каждого значения в исходном массиве?

Пример:

scala> df.show()
+---------+------+
|employees|person|
+---------+------+
|[1, 2, 3]|  Mary|
|[4, 5, 6]|  John|
+---------+------+

Ожидаемый результат:

+---------+------+
|employee |person|
+---------+------+
|1        |  Mary|
|2        |  Mary|
|3        |  Mary|
|4        |  John|
|5        |  John|
|6        |  John|
+---------+------+

Это то, что я пробовал:

df.select($"person", explode($"employees")).show()

+------+---+
|person|col|
+------+---+
|  Mary|  1|
|  Mary|  2|
|  Mary|  3|
|  John|  4|
|  John|  5|
|  John|  6|
+------+---+

Как я могу получить результирующий разнесенный столбец с именем "employee"?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Вы можете использовать withColumn как для создания нового столбца как

df.withColumn("employee", explode($"employees")).show()
0 голосов
/ 14 мая 2018

Как сделать так, чтобы результирующий разнесенный столбец был назван "employee"?

df.select($"person", explode($"employees").alias("employee")).show()

или

df.select($"person", explode($"employees").as("employee")).show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...