我有一个要求,我想将5GB ORC文件分成5个文件,每个文件大小为1 GB。 ORC文件是可拆分的。这是否意味着我们只能按条带分割文件条带? 但我有要求我想根据大小拆分orc文件。 将ex.split 5GB ORC文件分成5个文件,每个文件大小为1 GB。 如果可能请分享示例。
答案 0 :(得分:2)
一种常见的方法,并考虑到您的文件大小可以是5GB,100GB,1TB,100TB等。您可能希望挂载指向此文件的Hive表并定义另一个指向不同目录的表,然后运行使用Hive提供的insert语句从一个表插入另一个表。
在脚本开头,请确保您有以下Hive标志:
set hive.merge.mapredfiles=true;
set hive.merge.mapfiles=true;
set hive.merge.smallfiles.avgsize=1073741824;
set hive.merge.size.per.task=1073741824;
这样,每个reducer的输出平均值为1073741824 Bytes
,等于1GB
。
如果您只想使用Java代码,请使用以下标志:
mapred.max.split.size
mapred.min.split.size
请检查这些,它们非常有用: