2017-03-19 66 views
1

我有數據幀的名單,我需要加入:如何鏈中階火花加入

我現在的方法是一個很大的醜陋

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") 

鑑於dataframes的序列,是有辦法應用相同的操作

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

如何編寫一個泛型函數來加入它們?

+2

,'foldLeft'應該做的伎倆 – AKSW

回答

1

鑑於

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

你可以在Scala中使用reduceLeft

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