Spart DF:将数组拆分为多行

我使用mongodata创建了spark数据框(在使用python笔记本的数据块中)

Spart DF:将数组拆分为多行

我需要将此数据帧转换为

Spart DF:将数组拆分为多行

有人可以帮我吗?

dangdangheta 回答:Spart DF:将数组拆分为多行

这是一种建议的解决方案。您可以在MongoDB中使用$concatArrays sal 字段组织成数组,然后将其导出到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|
#+---+-----+----+

本文链接:https://www.f2er.com/3133949.html

大家都在问