Вы можете просто написать его без переменных, используя foldLeft
:
def joinDfList(singleDataFrame: DataFrame, dataFrameList: List[DataFrame], groupByCols: List[String]): DataFrame =
dataFrameList.foldLeft(singleDataFrame)(
(dfAcc, nextDF) => dfAcc.join(nextDF, groupByCols, "left_outer")
).na.fill(0.0)
в этом коде dfAcc
всегда будет соединяться с новым DataFrame
из dataFrameList
, и в конце вы получите one DataFrame
Важно! будьте осторожны, использование слишком большого количества объединений в одном задании может стать причиной снижения производительности.