我有一个数据帧数组,我使用“ id”列将其加入以创建更大的数据帧
val dfArray = Array.fill[DataFrame](n)(spark.emptyDataFrame)
dfArray(0) = df_0
dfArray(1) = df_1
...
dfArray(n) = df_n
val output = dfArray.reduceLeft(_.join(_, Seq("id")))
如果我尝试对output.show
执行任何操作(例如:output
),则需要花费很长时间。有时会因OOM错误而崩溃。但是,如果我将output
写入文件,然后将其读回另一个变量,则可以正常工作。
有人知道这是为什么以及如何解决它。
答案 0 :(得分:1)
这是由于以下事实:show
要求collect
将所需的数据集中到应用程序驱动程序,而写入文件(即使未提供代码)也不需要。