我使用Amazon的Elastic MapReduce的创建新表,我有一个蜂巢表基础上创建的文件夹中的一系列的Amazon S3存储日志文件和拆分一天像这样:蜂巢:从现有的分区表
- 数据/天= 2011-09-01/log_file.tsv
- 数据/天= 2011-09-02/log_file.tsv
目前我正在试图创建过滤掉一些额外的表这些日志文件中的不需要的活动,但我不知道如何做到这一点,并不断收到错误,如:
FAILED: Error in semantic analysis: need to specify partition columns because the destination table is partitioned.
如果我的初始表create语句看起来是这样的:
CREATE EXTERNAL TABLE IF NOT EXISTS table1 (
... fields ...
)
PARTITIONED BY (DAY STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION 's3://bucketname/data/';
即初始表工作正常,我已经能够没有任何问题进行查询。
那么我应该如何创建一个共享前一个结构的新表,但只是过滤掉数据?这似乎并不奏效。
CREATE EXTERNAL TABLE IF NOT EXISTS table2 LIKE table1;
FROM table1
INSERT OVERWRITE TABLE table2
SELECT * WHERE
col1 = '%somecriteria%' AND
more criteria...
;
正如我上面所说,这将返回:
FAILED: Error in semantic analysis: need to specify partition columns because the destination table is partitioned.
谢谢!