我正在使用用python编写的UDF以更改数字的基数。Pyspark udf高内存使用率
因此,我读了一个实木复合地板文件,并写入实木复合地板文件并应用UDF。 这里是我行运行:
input_df.withColumn("origin_base", convert_2_dest_base(input_df.origin_base)).write.mode('overwrite').parquet(destination_path)
转换,使得火花利用大量的内存,我得到这样的警告:
17/06/18 8时05分39秒WARN TaskSetManager:阶段4.0中丢失的任务40.0(TID 183,ip-10-100-5-196.ec2.internal,executor 19):ExecutorLostFailure(执行程序19由其中一个正在运行的任务导致退出)原因:YARN为超出内存限制。 4.4 GB使用的4.4 GB物理内存。考虑提升spark.yarn.executor.memoryOverhead。
并最终失败。
UDF是不是正确的方法?它为什么消耗这么多的内存?
很难说没有共享完全可重复的例子,什么是正确的方法。 – mtoto