考慮一下我在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