我试图在保留现有数据的同时将行插入表中,但是Hive会覆盖已存在的任何内容。执行以下操作后,我希望有2行:
1 2
3 4
但只能在表格中看到1行(3 4
)。
CREATE TABLE `my_db.test_table`
(
`x1` STRING
,`x2` STRING
)
LOCATION '/.../test_table'
;
INSERT INTO TABLE `my_db.test_table`
SELECT '1', '2'
;
INSERT INTO TABLE `my_db.test_table`
SELECT '3', '4'
;
根据the Hive Language Manual,覆盖只应在INSERT OVERWRITE
进行,而不应在INSERT INTO
进行。
什么可能导致这种覆盖?
答案 0 :(得分:2)
我找到了罪魁祸首:它是反击/反引号(`)。注意到这个问题here。
这将执行覆盖:
INSERT INTO TABLE `my_db.test_table`
SELECT '3', '4'
虽然这会附加:
INSERT INTO TABLE my_db.test_table
SELECT '3', '4'
答案 1 :(得分:0)