問題
maxResultSize異常火花工作失敗:
org.apache.spark。SparkException:工作階段失敗而終止:序列化的總大小
結果XXXX任務(X.0 GB)比spark.driver大。maxResultSize (X.0 GB)
導致
這個錯誤是因為配置的大小限製是超過。大小限製適用於總序列化結果引發的行為在所有分區。火花行為包括行為等收集()司機節點,toPandas (),或者一個大文件保存到本地文件係統。
解決方案
在某些情況下,您可能需要重構代碼,以防止司機節點收集大量數據。您可以更改代碼,這樣司機節點收集的數據量有限或增加司機實例內存大小。例如你可以叫toPandas啟用了箭頭或寫文件,然後讀取這些文件,而不是收集大量數據驅動程序。
如果絕對必要你可以設置屬性spark.driver.maxResultSize一個值< X > g高於價值在集群中的異常消息火花配置(AWS|Azure):
spark.driver.maxResultSize< X > g
默認值是4 g。有關詳細信息,請參見應用程序屬性。
如果你設置一個上限,就會出現內存不足錯誤的驅動程序(取決於spark.driver.memory和JVM)中對象的內存開銷。設置一個適當的限製,以防止出現內存不足的錯誤。