我注意到運行帶有spark 2.0的pyspark應用程序時出現的奇怪行爲。在涉及reduceByKey(因此也是shuffle)操作的腳本的第一步中,我觀察到shuffle寫入的數量大致符合我的預期,但溢出的數量比我預期的要多得多。我試圖通過將每個執行程序分配的內存量增加至原始數量的8倍來避免這些溢出,但基本上沒有溢出量的差異。奇怪的是,我也看到,雖然這個階段正在運行,但幾乎沒有使用任何分配的存儲內存(正如火花Web UI中的執行者標籤所報告的那樣)。火花溢出獨立執行程序內存分配
我看到了這個先前的問題,這讓我相信增加執行程序的內存可能有助於避免泄漏:How to optimize shuffle spill in Apache Spark application 。這使我相信一些硬限制導致了溢出,而不是spark.shuffle.memoryFraction參數。是否存在這樣的硬限制,可能是HDFS參數之間的限制?否則,除了增加執行程序內存外,還可以做些什麼來避免溢出?
非常感謝,R