Hive 中的多插入语句

use*_*240 5 hadoop hive

我在 Hive 中遇到多重插入问题

FROM staged_employees se
INSERT INTO TABLE us_employees
    AS SELECT * WHERE se.cnty = 'US'
INSERT INTO TABLE ca_employees
    AS SELECT * WHERE se.cnty = 'CA'
...
Run Code Online (Sandbox Code Playgroud)

据我所知,多重插入不是 IF ... ELSE ... 结构,但是是否可以将其变成 IF ... ELSE ... 结构?

小智 1

HQL 不支持条件逻辑。关于拆分插入件的问题的字面答案是:

INSERT INTO TABLE us_employees
SELECT * 
FROM staged_employees se
WHERE se.cnty = 'US'

INSERT INTO TABLE ca_employees
SELECT *
FROM staged_employees se
WHERE se.cnty = 'CA'
Run Code Online (Sandbox Code Playgroud)

通过拆分查询,您所要做的就是从表中读取所有数据staged_employees两次。并且,有可能让集群中的其他用户感到非常恼火。