案例:假如一张 hive 表中有100万条客户数据,怎么只对张三客户的手机号进行修改?
- 思路:
insert overwrite table table1 --直接覆写 select id,修改后内容 as col2 from table1 where id = 你想修改的内容的所在id --先弄出完整的增量行 union all --最后进行合并查询,得到完整有效的全行数据 select * from table1 where id != 你想修改的内容的所在id --然后排除掉旧内容得出有效的全行数据
- 代码:
-- 准备数据 create table user_info as values (1,'zs',15089943551), (2,'ls',15089943551), (3,'ww',15089943551), (4,'zl',15089943551), (5,'qq',15089943551); select * from user_info; -- SQL实现 insert overwrite table user_info select col1,col2,13744238881 as col3 from user_info where col2='zs' union all select * from user_info where col2!='zs';