保存到s3时,Spark上下文未调用stop()且未调用shutdown钩子

时间:2019-06-17 11:07:05

标签: scala apache-spark amazon-s3 apache-spark-sql amazon-emr

我正在从镶木地板文件中读取数据,对其进行处理,然后将结果保存到S3。该问题仅与最后(保存)部分有关。

在本地运行时,保存数据后,不会调用sparkContext的stop(),也不会调用shutdown钩子。我需要通过单击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()
  }
}

对于解决方案或如何进一步调试问题的任何想法,将不胜感激!

0 个答案:

没有答案