我有一个火花监听器,如下所示;
public class MySparkListener extends SparkListener {
@Override
public void onJobStart(SparkListenerJobStart jobStart) {
IdFederationUtil.debugLogger.info("JobStart time->"+jobStart.time()+" Id->"+jobStart.jobId()+" stageInfos->"+jobStart.stageInfos());
}
@Override
public void onJobEnd(SparkListenerJobEnd jobEnd) {
IdFederationUtil.debugLogger.info("JobEnd time->"+jobEnd.time()+" Id->"+jobEnd.jobId());
}
}
在日志中,我看到类似下面的内容;
JobStart time->1541588073798 Id->0 stageInfos->WrappedArray(org.apache.spark.scheduler.StageInfo@7e559e96, org.apache.spark.scheduler.StageInfo@190c2cf7, org.apache.spark.scheduler.StageInfo@7c8b18d6)
JobEnd time->1541588081879 Id->0
在每个任务中我如何获得这份工作ID?印出的那个,即Id-> 0
注意:我不在寻找应用程序ID。
用例是将连接信息存储在cache(map)中,其中key是jobId,value是连接。作业结束时关闭连接。
提前感谢您的帮助。
致谢, 罗宾·库塔亚(Robin Kuttaiah)。