如何从PySpark上下文中提取应用程序ID

时间:2015-06-22 14:56:57

标签: apache-spark yarn pyspark

previous question建议使用sc.applicationId,但PySpark中仅<{1}}

那么,我如何计算出PySpark流程的应用程序ID(scala)?

4 个答案:

答案 0 :(得分:7)

您可以通过Py4J RPC网关使用Java SparkContext对象:

>>> sc._jsc.sc().applicationId()
u'application_1433865536131_34483'

请注意sc._jsc是内部变量,而不是公共API的一部分 - 因此将来可能会更改(相当小)。

我将提交拉取请求以添加公共API调用。

答案 1 :(得分:3)

对于PySpark 2.0.0 +

spark_session = SparkSession \
    .builder \
    .enableHiveSupport() \
    .getOrCreate()

app_id = spark_session._sc.applicationId

答案 2 :(得分:2)

在Spark 1.6中(根据@wladymyrov对另一个答案的评论可能是1.5)

public static void main(String[] args) {
    String slashString = "//ab/c";

    System.out.println(slashString.replaceAll("^/+", ""));
}

答案 3 :(得分:0)

至少看起来像它的 available in 3.0.1

from pyspark.sql import SparkSession
spark = SparkSession \
    .builder \
    .appName('Overriding defaults app name') \
    .getOrCreate()
print(f'--- {spark.sparkContext.applicationId} ---')

结果:

--- application_1610550667906_166057 ---