我在hive中有两个具有相同模式的表。
tbl1(a,b,c)
tbl2(a,b,c)
我想按如下更新tbl1
update x from tbl1 x,tbl2 y
set x.c=y.c
where x.a=y.a
and x.b=y.b
但这并没有在蜂巢上运行。 什么是实现这一目标的最佳方式?
答案 0 :(得分:0)
评论时间有点长。
Hive不支持使用另一个表的值更新一个表(至少使用update
语句)。
声明的syntax是:
UPDATE tablename
SET column = value [, column = value ...]
[WHERE expression]
特别是,value
不能是子查询:
分配的值必须是Hive在其中支持的表达式 选择条款。算术运算符,UDF,强制转换,文字等等。 得到支持。不支持子查询。
请注意,where
子句中允许子查询。