#scala #apache-spark #partitioning #hortonworks-data-platform #hortonworks-sandbox
#scala #apache-spark #разделение #hortonworks-платформа данных #hortonworks-песочница
Вопрос:
Я хотел бы использовать эту новую функциональность: перезаписать определенный раздел без удаления всех данных в s3
Я использовал новый флаг ( spark.sql.sources.partitionOverwriteMode="dynamic"
) и протестировал его локально из своей IDE, и это сработало (я смог перезаписать определенный раздел в s3), но когда я развернул его на hdp 2.6.5 с spark 2.3.0, тот же код не создал папки s3, как ожидалось, папка вообще не создавалась, была создана только временная папка
Мой код :
df.write
.mode(SaveMode.Overwtite)
.partitionBy("day","hour")
.option("compression", "gzip")
.parquet(s3Path)
Ответ №1:
Вы пробовали spark версии 2.4? Я работал с этой версией, и как с EMR, так и с Glue это сработало хорошо, для использования «dynamic» в версии 2.4 просто используйте код:
dataset.write.mode("overwrite")
.option("partitionOverwriteMode", "dynamic")
.partitionBy("dt")
.parquet("s3://bucket/output")
В документации AWS указана версия 2.3.2 Spark для использования spark.sql.sources.partitionOverwriteMode="dynamic"
.
Нажмите на ссылку здесь.