Spart DF: разбить массив на несколько строк - PullRequest
0 голосов
/ 09 ноября 2019

Я создал искровой фрейм данных, используя mongodata (в блоках данных, использующих ноутбук python)

Dataframe

Мне нужно конвертировать этот фрейм данных как

required output

Может кто-нибудь помочь мне, пожалуйста?

1 Ответ

1 голос
/ 09 ноября 2019

Вот одно из предложенных решений. Вы можете организовать ваше поле sal в массивы, используя $concatArrays в MongoDB, прежде чем экспортировать его в Spark. Затем запустите что-то вроде этого

#df
#+---+-----+------------------+
#| id|empno|               sal|
#+---+-----+------------------+
#|  1|  101|[1000, 2000, 1500]|
#|  2|  102|      [1000, 1500]|
#|  3|  103|      [2000, 3000]|
#+---+-----+------------------+

import pyspark.sql.functions as F

df_new = df.select('id','empno',F.explode('sal').alias('sal'))

#df_new.show()
#+---+-----+----+
#| id|empno| sal|
#+---+-----+----+
#|  1|  101|1000|
#|  1|  101|2000|
#|  1|  101|1500|
#|  2|  102|1000|
#|  2|  102|1500|
#|  3|  103|2000|
#|  3|  103|3000|
#+---+-----+----+

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