spark 2.1.0 session config settings(pyspark)

Har*_*ish 31 python apache-spark pyspark spark-dataframe

我试图覆盖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
Run Code Online (Sandbox Code Playgroud)

当我将配置放入spark提交时,它工作正常

spark-submit --master ip --executor-cores=3 --diver 10G code.py
Run Code Online (Sandbox Code Playgroud)

Grr*_*Grr 34

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

一旦你启动pyspark shell类型:

sc.getConf().getAll()
Run Code Online (Sandbox Code Playgroud)

这将显示所有当前配置设置.然后尝试您的代码并再次执行.没有什么变化.

您应该做的是创建一个新配置并使用它来创建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)
Run Code Online (Sandbox Code Playgroud)

然后你可以像上面一样检查自己:

sc.getConf().getAll()
Run Code Online (Sandbox Code Playgroud)

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

  • 我已经完成了小小的工作但它有效..谢谢你......`spark = SparkSession.builder.config(conf = conf1).getOrCreate()``sc = spark.sparkContext`这里conf1是你在上面定义的(conf =**) (4认同)

bob*_*bob 22

更新Spark 2.3.1中的配置

要更改默认的spark配置,您可以按照以下步骤操作:

导入所需的类

from pyspark.conf import SparkConf
from pyspark.sql import SparkSession
Run Code Online (Sandbox Code Playgroud)

获取默认配置

spark.sparkContext._conf.getAll()
Run Code Online (Sandbox Code Playgroud)

更新默认配置

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')])
Run Code Online (Sandbox Code Playgroud)

停止当前的Spark会话

spark.sparkContext.stop()
Run Code Online (Sandbox Code Playgroud)

创建Spark会话

spark = SparkSession.builder.config(conf=conf).getOrCreate()
Run Code Online (Sandbox Code Playgroud)