web-dev-qa-db-fra.com

spark 2.1.0 Paramètres de configuration de session (pyspark)

J'essaie d'écraser les configs par défaut de spark session/spark contexte, mais il sélectionne l'intégralité de la ressource de nœud/cluster.

 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

Cela fonctionne bien lorsque je mets la configuration dans spark submit

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

Vous n'écrasez rien en réalité avec ce code. Juste pour que vous puissiez voir par vous-même, essayez ce qui suit.

Dès que vous démarrez le type de shell pyspark:

sc.getConf().getAll()

Cela vous montrera tous les paramètres de configuration actuels. Ensuite, essayez votre code et recommencez. Rien ne change.

Au lieu de cela, créez une nouvelle configuration et utilisez-la pour créer un SparkContext. Fais-le comme ça:

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)

Ensuite, vous pouvez vérifier vous-même comme ci-dessus avec:

sc.getConf().getAll()

Cela devrait refléter la configuration que vous vouliez.

27
Grr

mettre à jour la configuration dans Spark 2.3.1

Pour modifier les configurations par défaut spark), procédez comme suit:

Importer les classes requises

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

Récupère les configurations par défaut

spark.sparkContext._conf.getAll()

met à jour les configurations par défaut

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')])

Arrête le courant Spark Session

spark.sparkContext.stop()

Créer une Spark Session

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

Régler 'spark.driver.Host' sur 'localhost' dans la configuration fonctionne pour moi

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