如何在scala spark中链接连接

时间:2017-03-19 22:45:36

标签: scala apache-spark

我有一个我需要加入的数据框列表:

我目前的方法很丑陋

testdf1
    .join(testdf2, Seq("uuid","datestr"), "outer")
    .join(testdf3, Seq("uuid","datestr"), "outer")
    .join(testdf4, Seq("uuid","datestr"), "outer")
    .join(testdf5, Seq("uuid","datestr"), "outer")
    .join(testdf6, Seq("uuid","datestr"), "outer")
    .join(testdf7, Seq("uuid","datestr"), "outer")

给定一系列数据帧,是否有办法应用相同的操作

Seq(testdf1,testdf2,testdf3,testdf4,testdf5,testdf6,testdf7)

如何编写一个连接它们的通用函数?

1 个答案:

答案 0 :(得分:1)

鉴于

val dataframes = Seq(testdf1,testdf2,testdf3,testdf4,testdf5,testdf6,testdf7)

您可以使用reduceLeft

val joinedDF = dataframes.reduceLeft((df1, df2) => 
    df1.join(df2, Seq("uuid", "datestr"), "outer")
)