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
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.
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()
Régler 'spark.driver.Host' sur 'localhost' dans la configuration fonctionne pour moi
spark = SparkSession \
.builder \
.appName("MyApp") \
.config("spark.driver.Host", "localhost") \
.getOrCreate()