Я читаю данные из файлов паркета, обрабатываю их, а затем сохраняю результат в S3.Проблема относится только к последней (сохраняемой) части.
При локальном запуске, после сохранения данных, stop () sparkContext не вызывается, и ловушка завершения не вызывается.Мне нужно вручную вызывать / вызывать их, нажимая кнопку остановки IDE (IntelliJ).
При сохранении в локальную папку процесс завершается правильно.При работе в EMR процесс завершается правильно.
Изменение формата / заголовка / и т. Д.не решает проблему.Удаление всех / всех преобразований / объединений не решает проблему.
Проблема возникает при использовании как информационных фреймов, так и наборов данных.
РЕДАКТИРОВАТЬ: После комментариев пробовал использовать оба s3:// и s3a: // - а также разделение команд, но проблема остается.
Пример кода:
package test
import org.apache.spark.sql.SparkSession
object test {
def main(args: Array[String]): Unit = {
SparkSession
.builder
.appName("s3_output_test")
.master("local[*]")
.getOrCreate
.read
.parquet("path-to-input-data")
// .transform(someFunc)
// .join(someDF)
.coalesce(1)
.write
.format("csv")
.option("header", true)
.save("s3a://bucket-name/output-folder")
sparkSession.stop()
}
}
Любые идеи по решению иликак для дальнейшей отладки проблема будет принята с благодарностью, спасибо!