改写成hive语法 update "rpt_wjq_jf_value_dhfz_list" as "a" set "a"."subst_name" = "b"."aliasname", "a"."seq_id" = "b"."seq_id" from "dim_subst" as "b" where "a"."subst_id" = "b"."subst_id";
时间: 2023-06-28 13:12:18 浏览: 72
Hive不支持update语法,可以使用insert overwrite语法实现类似的更新操作。以下是可能的Hive语法实现:
```
insert overwrite table rpt_wjq_jf_value_dhfz_list
select b.aliasname as subst_name, b.seq_id as seq_id, a.col3, a.col4, ...
from rpt_wjq_jf_value_dhfz_list a
join dim_subst b on a.subst_id = b.subst_id;
```
其中,rpt_wjq_jf_value_dhfz_list是目标表,dim_subst是关联表,a和b是表别名,subst_id是关联字段,aliasname和seq_id是需要更新的字段,col3、col4等是除了需要更新的字段外的其它字段。
相关问题
将代码转换成hive语法 update rpt_wjq_jf_value_dhfz_list as a set a.acc_nbr = b.acc_nbr, a.cust_nbr = b.cust_nbr, a.subst_id = b.subst_id from rptdev.rpt_comm_cm_serv_cdma as b where a.cust_id = b.cust_id;
在Hive中,不支持Update语法,但可以使用INSERT OVERWRITE语句进行更新操作。以下是将代码转换为Hive语法的示例:
```
INSERT OVERWRITE TABLE rpt_wjq_jf_value_dhfz_list
SELECT b.acc_nbr, b.cust_nbr, b.subst_id, a.*
FROM rpt_wjq_jf_value_dhfz_list a
JOIN rptdev.rpt_comm_cm_serv_cdma b ON a.cust_id = b.cust_id;
```
该语句将会把rpt_wjq_jf_value_dhfz_list表中的a.acc_nbr, a.cust_nbr, a.subst_id字段更新为rptdev.rpt_comm_cm_serv_cdma表中的b.acc_nbr, b.cust_nbr, b.subst_id字段。JOIN条件为a.cust_id = b.cust_id。
改写成hive update "rpt_wjq_jf_value_dhfz_list" as "a" set "a"."subst_name" = "b"."aliasname", "a"."seq_id" = "b"."seq_id" from "dim_subst" as "b" where "a"."subst_id" = "b"."subst_id";
在 Hive 中,可以使用如下 SQL 语句来实现类似功能:
```
UPDATE rpt_wjq_jf_value_dhfz_list a
SET subst_name = b.aliasname, seq_id = b.seq_id
FROM dim_subst b
WHERE a.subst_id = b.subst_id;
```
需要注意的是,在 Hive 中,UPDATE 语句通常需要配合使用 INSERT OVERWRITE 语句来实现,具体可以根据业务需求进行调整。
阅读全文