我有一个外部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)
方法,它抛出的错误文件已存在。
有人能帮我继续吗?
1条答案
按热度按时间g0czyy6m1#
正如@avseiytsev所建议的,我将合并的orc文件存储在不同的文件夹中,作为hdfs中的源文件,并在作业完成后将数据移动到表路径。