我在RHEL上使用Spark版本2.4(有时是3.1),PySpark 2.4,Python 3.7。显式的PySpark spark配置可以通过以下方式检索:
from pyspark.sql import SparkSession
spark = (
SparkSession.builder
.appName('my_spark_app')
.config("spark.executor.cores", "2")
.getOrCreate()
)
spark.sparkContext.getConf().getAll()
# or
spark.sparkContext.getConf().toDebugString()
但这些不包括默认值。例如,从文档中应该有spark.executor.memory“1g”。相反,我们看到(缺失)None
值:
>>> dict(spark.sparkContext.getConf().getAll()).get('spark.executor.memory', 'None')
None
这对于在各种管理员管理的环境中调试运行时spark配置设置是不方便的。
也许这在earlier versions or in Scala之前是可能的,但是not more recently?
我希望上面的代码返回“1g”。知道怎么做的吗
1条答案
按热度按时间2ekbmq321#
如果您启用了SPARK UI,则API可以使用它来提供您的环境信息:
appId = spark.sparkContext.applicationId
appId = spark_session._sc.applicationId
如果你已经打开了spark历史服务器,它会有以前运行的记录,这样你就可以查看以前的运行和它们的环境。(查看作业的环境选项卡)这可能更容易查看,并且是专门为你要做的事情而构建的。
检查环境设置的另一种方法。Is it possible to get the current spark context settings in PySpark?