答案 0 :(得分:1)
这是一种建议的解决方案。您可以在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|
#+---+-----+----+