无法使用Spark合并小型ORC文件

问题描述 投票:2回答:1

我有一个外部ORC表,其中包含大量小文件,这些文件每天都来自源代码。我需要将这些文件合并为更大的文件。

我试图将ORC文件加载到spark并使用overwrite方法保存

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)方法时,它抛出的错误文件已经存在。

任何人都可以帮我继续吗?

apache-spark hadoop hadoop2 orc
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.