为什么orc文件比Hive中的镶木地板文件消耗更多空间?

时间:2018-01-30 11:01:00

标签: hadoop hive parquet orc

据我了解,ORC文件应该比镶木地板文件更小,更压缩。但是,当我通过从我的镶木桌中选择行来填充Apache Hive中的orc表时,orc表最终会消耗大约7倍的磁盘空间。

为什么会这样?我的表模式如下。它包含一个长度为200000的整数0,1和2数组,每个分区大约有10000行。

CREATE TABLE orc_table (
  field1 STRING
, field2 INT
, field3 STRING
, field4 STRING
, array_field ARRAY < INT >
) PARTITIONED BY (
    partition_name STRING
);

ALTER TABLE orc_table ADD PARTITION (partition_name='<partition-name>');

ALTER TABLE orc_table PARTITION (partition_name='<partition_name>') SET FILEFORMAT ORC;

INSERT INTO TABLE orc_table PARTITION (partition_name='<partition_name>')
SELECT field1, field2, field3, field4, array_field FROM parquet_table
WHERE partition_name='<partition_name>';

1 个答案:

答案 0 :(得分:1)

更改这些设置解决了问题:

float(...)

显然,Hive使用map-reduce在数据格式之间进行转换。因此,还需要打开map-reduce输出压缩。但这只是猜测。