pyspark 在 union/unionAll 函数上给出 java.lang.StackOverflowError

问题描述 投票:0回答:0

我正在尝试使用 union/unionAll 函数在循环的分页器中合并一个数据框,并从中删除重复项。该循环有数千次迭代。当迭代次数为数百时,代码工作正常,因为相同的代码无法处理数千次迭代和给定。

调用 o30984.union 时出错。 : java.lang.StackOverflowError.

示例代码:

let df1 - 是空数据框

for page in pages:
   for obj in page['Contents']:
      df2=spark.createDataframe(obj)
      df1=df1.unionAll(df2)
      df1.dropDuplicates(col)
      df1.write.csv(path)

此处页面的长度几乎等于 50,000 到数十万,并且两个数据框的模式相同。

是否有更好、更有效的方法或替代方案?

我期望在所有迭代中完美合并所有数据框并从中删除重复项。

pyspark union
© www.soinside.com 2019 - 2024. All rights reserved.