【发布时间】:2018-10-21 00:56:36
【问题描述】:
Spark 2.3 引入的动态分区在写入 S3 时似乎不适用于 AWS 的 EMR 5.13.0
执行时,会在 S3 中创建一个临时目录,但在处理完成后它会消失,而不会将新数据写入最终文件夹结构。
在 EMR 5.13.0 上执行 Scala/Spark 2.3 应用程序时发现此问题。
配置如下:
var spark = SparkSession
.builder
.appName(MyClass.getClass.getSimpleName)
.getOrCreate()
spark.conf.set("spark.sql.sources.partitionOverwriteMode","DYNAMIC") // also tried "dynamic"
写入 S3 的代码:
val myDataset : Dataset[MyType] = ...
val w = myDataset
.coalesce(10)
.write
.option("encoding", "UTF-8")
.option("compression", "snappy")
.mode("overwrite")
.partitionBy("col_1","col_2")
w.parquet(s"$destinationPath/" + Constants.MyTypeTableName)
destinationPath 是一个 S3 存储桶/文件夹
其他人遇到过这个问题吗?
【问题讨论】:
-
我看到了完全相同的问题。你找到答案了吗?
-
很遗憾没有。
-
好的,谢谢你让我知道。
标签: scala apache-spark amazon-s3 bigdata amazon-emr