private SparkTask initializeTask(JSONObject event) {
SparkTask task = new SparkTask();
task.setTags(new HashMap<>(this.app.getTags()));
task.setTimestamp(app.getTimestamp());
task.getTags().put(SparkJobTagName.SPARK_SATGE_ID.toString(), Long.toString(JSONUtils.getLong(event, "Stage ID")));
task.getTags().put(SparkJobTagName.SPARK_STAGE_ATTEMPT_ID.toString(), Long.toString(JSONUtils.getLong(event, "Stage Attempt ID")));
JSONObject taskInfo = JSONUtils.getJSONObject(event, "Task Info");
long taskId = JSONUtils.getLong(taskInfo, "Task ID");
task.setTaskId(taskId);
task.getTags().put(SparkJobTagName.SPARK_TASK_INDEX.toString(), Long.toString(JSONUtils.getLong(taskInfo, "Index")));
task.getTags().put(SparkJobTagName.SPARK_TASK_ATTEMPT_ID.toString(), Integer.toString(JSONUtils.getInt(taskInfo, "Attempt")));
long launchTime = JSONUtils.getLong(taskInfo, "Launch Time", lastEventTime);
this.lastEventTime = launchTime;
if (taskId == 0) {
this.setFirstTaskLaunchTime(launchTime);
}
task.setLaunchTime(launchTime);
task.setExecutorId(JSONUtils.getString(taskInfo, "Executor ID"));
task.setHost(JSONUtils.getString(taskInfo, "Host"));
task.setTaskLocality(JSONUtils.getString(taskInfo, "Locality"));
task.setSpeculative(JSONUtils.getBoolean(taskInfo, "Speculative"));
tasks.put(task.getTaskId(), task);
return task;
}