我有一个要求,我想将 5GB ORC 文件拆分为 5 个文件,每个文件大小为 1 GB。ORC 文件是可拆分的。这是否意味着我们只能逐条分割文件条带?但我有一个要求,我想根据大小拆分 orc 文件。例如,将 5GB ORC 文件拆分为 5 个文件,每个文件大小为 1 GB。如果可能,请分享示例。
问问题
2267 次
1 回答
3
一种常见的方法,考虑到您的文件大小可以是 5GB、100GB、1TB、100TB 等。您可能希望挂载一个指向该文件的 Hive 表并定义另一个指向不同目录的表,然后从一个运行插入表到另一个使用Hive 提供的插入语句。
在脚本的开头,确保您具有以下 Hive 标志:
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
请检查这些,它们非常有用:
于 2017-03-03T18:38:04.870 回答