Контекст Spark не вызывает stop (), а ловушка shutdown не вызывается при сохранении в s3 - PullRequest
1 голос
/ 17 июня 2019

Я читаю данные из файлов паркета, обрабатываю их, а затем сохраняю результат в 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()
  }
}

Любые идеи по решению иликак для дальнейшей отладки проблема будет принята с благодарностью, спасибо!

...