我将数据拆分为多个文件。我想加载并加入文件。我想构建一个动态函数 1. 将 n 个数据文件连接到一个数据框 2. 给定文件位置和连接列的输入(例如,pk)
我认为这可以用 foldLeft 完成,但我不太确定如何:
到目前为止,这是我的代码:
@throws
def dataJoin(path:String, fileNames:String*): DataFrame=
{
try
{
val dfList:ArrayBuffer[DataFrame]=new ArrayBuffer
for(fileName <- fileNames)
{
val df:DataFrame=DataFrameUtils.openFile(spark, s"$path${File.separator}$fileName")
dfList += df
}
dfList.foldLeft
{
(df,df1) => joinDataFrames(df,df1, "UID")
}
}
catch
{
case e:Exception => throw new Exception(e)
}
}
def joinDataFrames(df:DataFrame,df1:DataFrame, joinColum:String): Unit =
{
df.join(df1, Seq(joinColum))
}