我有一个要求,我想把5gb的orc文件分成5个文件,每个1 gb大小。orc文件是可拆分的。这是不是意味着我们只能一条一条地分割文件?但我有一个要求,我想分裂兽人的大小为基础的文件。例如,将5gb orc文件拆分为5个文件,每个文件大小为1 gb。如果可能,请分享例子。
tjjdgumg1#
这是一种常见的方法,考虑到您的文件大小可以是5gb、100gb、1tb、100tb等。您可能希望挂载一个指向此文件的配置单元表,并定义一个指向不同目录的多个表,然后使用配置单元提供的insert语句从一个表到另一个表运行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代码,请使用以下标志:
1073741824 Bytes
1GB
mapred.max.split.size mapred.min.split.size
请检查这些,它们非常有用:拆分大小与块大小最小拆分大小
1条答案
按热度按时间tjjdgumg1#
这是一种常见的方法,考虑到您的文件大小可以是5gb、100gb、1tb、100tb等。您可能希望挂载一个指向此文件的配置单元表,并定义一个指向不同目录的多个表,然后使用配置单元提供的insert语句从一个表到另一个表运行insert。
在脚本的开头,请确保具有以下配置单元标志:
这样,每个减速器的平均输出将
1073741824 Bytes
等于1GB
.如果只想使用java代码,请使用以下标志:
请检查这些,它们非常有用:
拆分大小与块大小
最小拆分大小