У меня есть конвейер Spark с 3 DataFrame.write
, и я хочу вывести временную метку для каждой записи. Я пытался так:
val timeFormat = new SimpleDataFormat("HH:mm:ss")
val calendar = Calendar.getInstance()
df.groupby(...)
.agg(...)
.write
.csv(...)
println(timeFormat.format(calendar.getTime))
Но то, что я вижу в выводе, выглядит так:
2018-07-04 12:31:55 INFO DAGScheduler:54 - Job 5 finished ...
12:25:56
Мне нужен настоящий конец работы, поэтому 12:31:55
здесь. Как я могу получить правильное время?
Почему это происходит? Я предполагаю, что это как-то связано со скриптом драйвера, который просто порождает процессы-исполнители, но продолжает работать, фактически не дожидаясь окончания работы, прежде чем выполнять операторы print. Это правильно?