whi*_*eam 54 config apache-spark pyspark
我正试图找到spark.worker.dir当前的道路sparkcontext.
如果我明确地将其设置为a config param,我可以将其读回来SparkConf,但无论如何都要config使用PySpark?来访问完整的(包括所有默认值)?
jav*_*dba 71
是的: sc._conf.getAll()
哪个使用方法:
SparkConf.getAll()
Run Code Online (Sandbox Code Playgroud)
如访问
SparkContext.sc._conf
Run Code Online (Sandbox Code Playgroud)
注意下划线:这使得这很棘手.我不得不看一下火花源代码来弄明白;)
但它确实有效:
In [4]: sc._conf.getAll()
Out[4]:
[(u'spark.master', u'local'),
(u'spark.rdd.compress', u'True'),
(u'spark.serializer.objectStreamReset', u'100'),
(u'spark.app.name', u'PySparkShell')]
Run Code Online (Sandbox Code Playgroud)
Kev*_*vad 62
Spark 2.1+
spark.sparkContext.getConf().getAll()spark你在哪里sparksession(给你一个dict所有配置的设置)
ece*_*ena 28
Spark 1.6+
sc.getConf.getAll.foreach(println)
Run Code Online (Sandbox Code Playgroud)
bob*_*bob 17
更新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)
asm*_*ier 10
有关Spark环境和配置的完整概述,我发现以下代码片段非常有用:
SparkContext:
for item in sorted(sc._conf.getAll()): print(item)
Run Code Online (Sandbox Code Playgroud)
Hadoop配置:
hadoopConf = {}
iterator = sc._jsc.hadoopConfiguration().iterator()
while iterator.hasNext():
prop = iterator.next()
hadoopConf[prop.getKey()] = prop.getValue()
for item in sorted(hadoopConf.items()): print(item)
Run Code Online (Sandbox Code Playgroud)
环境变量:
import os
for item in sorted(os.environ.items()): print(item)
Run Code Online (Sandbox Code Playgroud)
对于 Spark 2+,您也可以在使用 scala 时使用
spark.conf.getAll; //spark as spark session
Run Code Online (Sandbox Code Playgroud)
不幸的是,不,2.3.1 版的 Spark 平台不提供任何方式来在运行时以编程方式访问每个属性的值。它提供了几种方法来访问通过配置文件(如spark-defaults.conf)显式设置的属性值,SparkConf在创建会话时通过对象设置,或在提交作业时通过命令行设置,但这些方法都不会显示未明确设置的属性的默认值。为了完整起见,最好的选择是:
http://<driver>:4040)有一个带有属性值表的“环境”选项卡。SparkContext保持隐藏参考其在PySpark配置和构造提供了getAll方法,包括:spark.sparkContext._conf.getAll()。SET将返回属性值表的命令:spark.sql("SET").toPandas(). 您还可以使用SET -v包含属性描述的列。(这三种方法都在我的集群上返回相同的数据。)
您可以使用:
sc.sparkContext.getConf.getAll
Run Code Online (Sandbox Code Playgroud)
例如,我经常在 Spark 程序的顶部放置以下内容:
logger.info(sc.sparkContext.getConf.getAll.mkString("\n"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66094 次 |
| 最近记录: |