Hive
中 SQL Server UPDATE SET
命令的最佳(更便宜)等价物是什么?
例如,考虑我要转换以下查询的情况:
UPDATE TABLE employee
SET visaEligibility = 'YES'
WHERE experienceMonths > 36
等效于 Hive
查询。
最佳答案
我假设您有一个没有分区的表,在这种情况下您应该能够执行以下命令:
INSERT OVERWRITE TABLE employee SELECT employeeId,employeeName, experienceMonths ,salary, CASE WHEN experienceMonths >=36 THEN ‘YES’ ELSE visaEligibility END AS visaEligibility FROM employee;
还有其他方法,但是比较复杂,我觉得Bejoy描述的方法是最有效的。
(来源:Bejoy KS blog)
请注意,如果您必须在分区表上执行此操作(如果您有大量数据,这很可能),您可能需要在执行此操作时覆盖您的分区。
关于sql - Hive 中 SQL Server UPDATE 命令的最佳等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243913/