配置单元插入覆盖目录将记录拆分为大小相等的文件



我使用一个配置单元外部表将数据转储为json。我的转储文件看起来不错。然而,在我转储之后,hive编写的文件大小各异,从400MB到7GB不等。我想要一个固定的最大大小的文件(比如1GB(。但我做不到。请帮帮我!我的查询:

INSERT OVERWRITE DIRECTORY '/myhdfs/location' 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe' 
select * from MY_EXTERNAL_TABLE; 

配置单元版本:Hive 1.1.0-cdh5.14.2

Hadoop版本:Hadoop 2.6.0-cdh5.14.2

设置每个reducer的字节数限制并添加distributed by(这将触发reducer步骤(,使用一些均匀分布的列或列列表:

set hive.exec.reducers.bytes.per.reducer=1000000000; 
INSERT OVERWRITE DIRECTORY '/myhdfs/location' 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe' 
select * from MY_EXTERNAL_TABLE distribute by <column or col list here>; 

也请检查此答案:https://stackoverflow.com/a/55375261/2700344

相关内容

  • 没有找到相关文章

最新更新