我运行了几个批处理作业,我想将dataproc中的jobId引用到保存的输出文件中。

这样就可以使参数和输出的所有日志与结果相关联。缺点仍然存在:随着YARN中的执行者过去,不再可以获取单个执行者的日志。

最佳答案

Google dataproc的上下文通过使用标签传递到Spark作业中。因此,所有合适的信息都存在于SparkConfig中,并且可以访问:

pyspark.SparkConf().get("spark.yarn.application.tags", "unknown")
pyspark.SparkConf().get("spark.yarn.tags", "unknown")

输出看起来如下:
dataproc_job_3f4025a0-bce1-a254-9ddc-518a4d8b2f3d

然后可以将该信息分配给我们的导出文件夹,并使用Dataproc参考保存输出:
df.select("*").write. \
    format('com.databricks.spark.csv').options(header='true') \
    .save(export_folder)

关于google-cloud-dataproc - 如何在PySpark作业中检索Dataproc的jobId,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36527049/

10-11 04:46