Apache spark 如何从PySpark上下文提取应用程序ID
A建议使用Apache spark 如何从PySpark上下文提取应用程序ID,apache-spark,yarn,pyspark,Apache Spark,Yarn,Pyspark,A建议使用sc.applicationId,但它不存在于PySpark中,仅存在于scala中 那么,如何计算我的PySpark进程的应用程序id(用于warn)?您可以通过Py4J RPC网关使用Java SparkContext对象: >>> sc._jsc.sc().applicationId() u'application_1433865536131_34483' 请注意,sc.\u jsc是内部变量,而不是公共API的一部分-因此将来可能会更改它(相当小) 我将提交
sc.applicationId
,但它不存在于PySpark
中,仅存在于scala
中
那么,如何计算我的PySpark进程的应用程序id(用于
warn
)?您可以通过Py4J RPC网关使用Java SparkContext对象:
>>> sc._jsc.sc().applicationId()
u'application_1433865536131_34483'
请注意,sc.\u jsc
是内部变量,而不是公共API的一部分-因此将来可能会更改它(相当小)
我将提交pull请求以添加此的公共API调用。在Spark 1.6中(根据@wladymyrov对另一个答案的评论,可能是1.5)
适用于PySpark 2.0.0+
spark_session = SparkSession \
.builder \
.enableHiveSupport() \
.getOrCreate()
app_id = spark_session._sc.applicationId
看起来至少:
从pyspark.sql导入SparkSession
火花=火花会话\
建筑商先生\
.appName('覆盖默认应用程序名称')\
.getOrCreate()
打印(f'--{spark.sparkContext.applicationId}--')
结果:
--- application_1610550667906_166057 ---
. 查找
id()。经PR认可的Spark团队-so sc.applicationID属性将在Spark 1.5.0版本中可用我确认sc.applicationID
在Spark 1.5.2中可用。
--- application_1610550667906_166057 ---