pyspark

【Pyspark】Spark.driverのメモリ上限設定を変更する方法

この記事は約2分で読めます。

 

DatabricksでsparkのデータフレームをtoPandas()でpandasのデータフレームに変換しようとした際に以下のようなエラーに遭遇しました。

 

<エラーメッセージ>

Caused by: org.apache.spark.sql.execution.OutOfMemorySparkException: Size of broadcasted table far exceeds estimates and exceeds limit of spark.driver.maxResultSize=4294967296.

 

 

関連記事:Pyspark3.0用の集計・前処理サンプルコードまとめ

 

関連記事:pandasからsparkデータフレームへの変換時に 「Can not merge type error」のエラーが出た時の対策

 

現在の設定を確認する

 

まず以下のコードで現在の設定が取得できます

# 現在の設定を取得する
spark.conf.get("spark.driver.maxResultSize")

 

設定を変更する

 

例えばtoPandas()で生成するpandasデータフレームのサイズ上限を8GBに引き上げたい場合は以下のように記述します。

 

# 設定を変更する
spark.conf.set("spark.driver.maxResultSize",value='8g')

 

ちなみにDatabricksとかだと上記コードを実行した際に以下のようなエラーが出るときもあります

databricks cannot modify the value of a spark config spark.driver.maxresultsize

この場合はこちら側でクラスターの設定を変更する権限がないので管理者に連絡するしかないです

 

参照:https://stackoverflow.com/questions/72653169/cannot-modify-the-value-of-a-spark-config-spark-executor-instances

 

 

コメント

  1. […] 参考:【Pyspark】Spark.driverのメモリ上限設定を変更する方法 […]

タイトルとURLをコピーしました