У меня есть массив фреймов данных, к которым я присоединяюсь, используя столбец «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
в файл и считываю его обратно в другую переменную, он работает нормально.
Кто-нибудь знает, почему это так и как решить.