2017-03-03 179 views
0

我有一个要求,我想将5GB ORC文件分成5个文件,每个文件大小为1 GB。 ORC文件是可拆分的。这是否意味着我们只能通过分割来分割文件条带? 但我有要求根据大小拆分orc文件的位置。 将ex.split 5GB ORC文件分成5个文件,每个文件大小为1 GB。如果可能的话请分享示例 。如何根据大小拆分ORC文件?

回答

0

一种常见的方法是,考虑到文件大小可以是5GB,100GB,1TB,100TB等。您可能希望挂载指向该文件的Hive表并指定一个指向不同目录的表,然后运行使用由Hive提供的insert声明从一个表格插入到另一个表格。

在脚本的开头,请确保您有以下蜂巢标志:

set hive.merge.mapredfiles=true; 
set hive.merge.mapfiles=true; 
set hive.merge.smallfiles.avgsize=1073741824; 
set hive.merge.size.per.task=1073741824; 

这样,输出平均每个减速将是1073741824 Bytes等于1GB

如果你想只使用Java代码,这些标志玩:

mapred.max.split.size 
mapred.min.split.size 

请检查这些,他们是非常有用的:

+0

感谢您的回复。 有没有什么办法可以使用核心java分裂而不是配置单元? –

+0

请看我编辑的答案。 – dbustosp

+0

我需要一个完全基于Core Java API的解决方案。不是hadoop或mapreduce。无论如何非常感谢您花时间回复' –