如何知道作业的哪个阶段当前在 Apache Spark 中运行?
考虑一下我在Spark中有一份工作;
CSV 文件 ==> 按列筛选 ==> 取样本 ==> 另存为 JSON
现在我的要求是我如何知道作业的哪个步骤(提取文件或过滤或采样)当前正在以编程方式执行(最好使用Java API)?有什么办法吗?
我可以使用SparkListener类跟踪作业,舞台和任务。它可以像跟踪阶段ID一样完成。但是如何知道哪个阶段 Id 是作业链中的哪个步骤。
当考虑按列筛选完成时,我想向用户发送通知的内容。为此,我创建了一个扩展 SparkListener 类的类。但是我无法从哪里找到当前正在执行的转换名称的名称。有没有可能跟踪?
public class ProgressListener extends SparkListener{
@Override
public void onJobStart(SparkListenerJobStart jobStart)
{
}
@Override
public void onStageSubmitted(SparkListenerStageSubmitted stageSubmitted)
{
//System.out.println("Stage Name : "+stageSubmitted.stageInfo().getStatusString()); giving action name only
}
@Override
public void onTaskStart(SparkListenerTaskStart taskStart)
{
//no such method like taskStart.name()
}
}