sql - Hive 中 SQL Server UPDATE 命令的最佳等价物

标签 sql sql-server hadoop hive

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/

相关文章:

ubuntu - Hadoop : NameNode , DataNode 和 SecondaryNameNode 未运行

sql - Oracle:获得团队的最大值(value)?

php - 3 表 1 嵌套结果查询 - Mysql - Php

mysql - 数据库结构 - 这是正确的做事方法吗?

python - SQL服务器: find list of records in one select query that are not in another select query

java - SQL Server 连接被拒绝且 jTDS 驱动程序无法工作

php - magento sql 脚本不工作?

sql-server - ssis导入问题将一些数据映射到xml文件

java - 在 Hadoop Mapreduce 中使用 gzip 编解码器压缩 reducer 的输出时出错

尝试运行 camus 时出现 java.lang.ClassNotFoundException