1

什么是 SQL ServerUPDATE SET命令的最佳(较便宜)等价物Hive

例如,考虑我要转换以下查询的情况:

UPDATE TABLE employee 
SET visaEligibility = 'YES' 
WHERE experienceMonths > 36

到等效Hive查询。

4

3 回答 3

2

我假设您有一个没有分区的表,在这种情况下您应该能够执行以下命令:

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 博客

请注意,如果您必须在分区表上执行此操作(如果您有很多数据,这很可能),您可能需要在执行此操作时覆盖您的分区。

于 2013-01-09T19:04:02.347 回答
0

您可以创建一个外部表并使用“插入覆盖到本地目录”,如果要更改列值,可以使用“CASE WHEN”、“IF”或其他条件操作。并将输出文件复制回 HDFS 位置。

于 2013-09-19T13:13:55.777 回答
0

您可以将配置单元升级到 0.14.0

从 0.14.0 hive 开始支持 UPDATE 操作。

为此,我们需要创建 hive 表以使其支持ACID输出格式,并且需要在hive-site.xml中设置其他属性。

如何在 Hive 中进行 CURD 操作

于 2014-11-25T09:17:35.547 回答