spark 2.1.0 session config settings(pyspark)

问题描述 投票:21回答:3

我试图覆盖spark会话/ 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提交时,它工作正常

spark-submit --master ip --executor-cores=3 --diver 10G code.py
python apache-spark pyspark spark-dataframe
3个回答
25
投票

你实际上并没有用这段代码覆盖任何东西。只是这样你可以亲自看看,尝试以下方法。

一旦你启动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()

这应该反映您想要的配置。


18
投票

更新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()

1
投票

在配置中将'spark.driver.host'设置为'localhost'对我有用

spark = SparkSession \
    .builder \
    .appName("MyApp") \
    .config("spark.driver.host", "localhost") \
    .getOrCreate()
© www.soinside.com 2019 - 2024. All rights reserved.