我在 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两次。并且,有可能让集群中的其他用户感到非常恼火。