web-dev-qa-db-ja.com

spark 2.1.0セッション構成設定(pyspark)

sparkセッション/スパークコンテキストのデフォルト構成を上書きしようとしていますが、ノード/クラスターリソース全体を選択しています。

 spark  = SparkSession.builder
                      .master("ip")
                      .enableHiveSupport()
                      .getOrCreate()

 spark.conf.set("spark.executor.memory", '8g')
 spark.conf.set('spark.executor.cores', '3')
 spark.conf.set('spark.cores.max', '3')
 spark.conf.set("spark.driver.memory",'8g')
 sc = spark.sparkContext

spark submitに構成を配置すると正常に動作します

spark-submit --master ip --executor-cores=3 --diver 10G code.py
25
Harish

このコードで実際に何かを上書きしているわけではありません。あなたが自分で見ることができるように、次を試してください。

Pyspark Shellを起動したらすぐに次のように入力します。

sc.getConf().getAll()

これにより、現在の構成設定がすべて表示されます。次に、コードを試して、もう一度実行します。何も変わりません。

代わりに行うべきことは、新しい構成を作成し、それを使用してSparkContextを作成することです。次のようにします:

conf = pyspark.SparkConf().setAll([('spark.executor.memory', '8g'), ('spark.executor.cores', '3'), ('spark.cores.max', '3'), ('spark.driver.memory','8g')])
sc.stop()
sc = pyspark.SparkContext(conf=conf)

次に、上記のように自分自身を確認できます:

sc.getConf().getAll()

これは、必要な構成を反映する必要があります。

27
Grr

Spark 2.3.1の設定を更新

デフォルトのspark構成を変更するには、次の手順を実行できます。

必要なクラスをインポート

from pyspark.conf import SparkConf
from pyspark.sql import SparkSession

デフォルト設定を取得

spark.sparkContext._conf.getAll()

デフォルト設定を更新

conf = spark.sparkContext._conf.setAll([('spark.executor.memory', '4g'), ('spark.app.name', 'Spark Updated Conf'), ('spark.executor.cores', '4'), ('spark.cores.max', '4'), ('spark.driver.memory','4g')])

現在のSparkセッションを停止する

spark.sparkContext.stop()

Sparkセッションの作成

spark = SparkSession.builder.config(conf=conf).getOrCreate()
21
bob

設定で「spark.driver.Host」を「localhost」に設定するとうまくいきます

spark = SparkSession \
    .builder \
    .appName("MyApp") \
    .config("spark.driver.Host", "localhost") \
    .getOrCreate()
1
Vivek