考虑一下我在Spark中的工作如下;如何知道Apache Spark中当前正在运行哪个阶段的工作?
CSV文件 ==>过滤用一个柱 ==>以样品 ==>另存为JSON
现在我的要求就是我怎么知道哪些步骤(撷取文件或Filtering or 取样)当前正在以编程方式执行(最好使用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()
}
}
关闭注释看起来不太合适:这当然是一个编程相关的问题,它在宽度/范围内似乎也是合理的。 – javadba