由于驱动程序执行程序OOM,Pyspark失败

我有一个数据框,由于驱动程序的OOM,它在“选择”时失败:

数据帧如下:

df2=df1.withColumnRename()
       .withColumn(...)
       .withColumn(...)

在“转换”列表之后,然后选择:

df3=df2.select ()

然后应用“ Windows函数”:

window = Window.partitionBy(col("PK")).orderBy(col("create_ts").desc())
df5=df3.withColumn("rn",row_number().over(window)).where(col("rn") == 1).drop("rn")

最终,作业由于驱动程序的OOM而失败。

但是,如果我在df5之后移动“ df3 = df2.select()”,则此操作将消失。 或者,如果我这样做:df3.cache(),此问题也将消失,但我不明白原因,因为“选择”是转换而不是操作,因此根本无法计算,那么为什么会有此错误?

fwj0830 回答:由于驱动程序执行程序OOM,Pyspark失败

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2504954.html

大家都在问