我正在使用用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