我正在搜索并找出加入n
Spark数据帧的最佳方法。
示例List(df1,df2,df3,dfN)
,其中所有df
都有我可以加入的日期。
递归?
答案 0 :(得分:3)
像这样:
List(df1,df2,df3,dfN).reduce((a, b) => a.join(b, joinCondition))
答案 1 :(得分:0)
我正在为pyspark用户写上面的答案。
from functools import reduce
from pyspark.sql.functions import coalesce
dfslist #list of all dataframes that you want to join
mergedDf = reduce(lambda df1,df2 : df1.join(df2, [df1.joinKey == df2.joinKey ], "outer").select("*", coalesce(df1.joinKey, df2.joinKey).alias("joinKey")).drop(df1.joinKey ).drop(df2.joinKey ), dfslist )