[Hive]Need to specify partition columns because the destination table is partition

当向已经分区的表插入数据时,有可能会报错:

1
Need to specify partition columns because the destination table is partition

原因是需要在插入的数据中指定分区字段的数值是多少。

比如:

建表语句:

1
2
3
4
5
6
7
8
9
CREATE TABLE test (
    starttime STRING,
    endtime STRING,
    title STRING
)
PARTITIONED BY (username STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS TEXTFILE;
1
2
3
4
5
6
7
8
9
CREATE TABLE test2 (
    starttime STRING,
    endtime STRING,
    title STRING
)
PARTITIONED BY (username STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS TEXTFILE;

插入语句:

1
2
INSERT INTO TABLE test PARTITION(username='admin')
SELECT starttime, endtime, title FROM test2 WHERE username = 'admin';