无法使用spark合并小型orc文件

xmakbtuz  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(433)

我有一个外部orc表,里面有大量的小文件,这些文件每天都来自源代码。我需要把这些文件合并成更大的文件。
我试着把orc文件加载到spark并用覆盖方法保存

val fileName = "/user/db/table_data/"  //This table contains multiple partition on date column with small data files.
val df = hiveContext.read.format("orc").load(fileName)
df.repartition(1).write.mode(SaveMode.Overwrite).partitionBy("date").orc("/user/db/table_data/)

但是 mode(SaveMode.Overwrite) 正在从hdfs中删除所有数据。当我试着 mode(SaveMode.Overwrite) 方法,它抛出的错误文件已存在。
有人能帮我继续吗?

g0czyy6m

g0czyy6m1#

正如@avseiytsev所建议的,我将合并的orc文件存储在不同的文件夹中,作为hdfs中的源文件,并在作业完成后将数据移动到表路径。

相关问题