我正在从镶木地板文件中读取数据,对其进行处理,然后将结果保存到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()
}
}
对于解决方案或如何进一步调试问题的任何想法,将不胜感激!