插入物上的Hive's Bucketing Duplicates

时间:2015-11-17 09:54:47

标签: hive

我有一个Hive表,按年份和月份进行分区,并按天进行分区。这是DDL(最初为空):

CREATE EXTERNAL TABLE db.myTable (
  id STRING,
  ...,
  date INT
) 
PARTITIONED BY (year INT, month INT)
CLUSTERED BY (date) INTO 31 BUCKETS
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE 
LOCATION '<myTable-hdfs-path>';

当插入Hive表时,从文档中,它应该只有最多31个HDFS文件(称为存储桶)。我尝试在这个表上进行单行插入(最后一个字段是日期/日期字段)。

INSERT INTO db.myTable
PARTITION (year=2015, month=10)
VALUES ('1447372800', ... , 15);

MapReduce作业在<myTable-hdfs-path>/year=2015/month=10中创建31个文件,只有一个文件(比如00000_0)具有非零字节大小,其余文件为0.

当我尝试插入具有相同年份,月份,日期(其他值不同)的另一个条目时,MapReduce作业会创建另一组31个文件(总共62个),类似于第一个插入。

如果我正确阅读文档,第二个插入应该只是将条目附加到00000_0,尊重表的聚类。为什么这种行为“奇怪”?

P.S。我在Cloudera CDH QuickStart 5.4.0上使用Hive v1.1.0

0 个答案:

没有答案