previous question建议使用sc.applicationId
,但PySpark
中仅<{1}} 。
那么,我如何计算出PySpark流程的应用程序ID(scala
)?
答案 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 ---