如何连接数据框(来自数据集的集合)?

时间:2016-11-15 07:08:32

标签: scala apache-spark apache-spark-sql

我正在搜索并找出加入n Spark数据帧的最佳方法。

示例List(df1,df2,df3,dfN),其中所有df都有我可以加入的日期。

递归?

2 个答案:

答案 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 )