从蜂巢中的语句更新

时间:2016-06-14 10:38:26

标签: hive

我在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

但这并没有在蜂巢上运行。 什么是实现这一目标的最佳方式?

1 个答案:

答案 0 :(得分:0)

评论时间有点长。

Hive不支持使用另一个表的值更新一个表(至少使用update语句)。

声明的syntax是:

UPDATE tablename
    SET column = value [, column = value ...]
   [WHERE expression]

特别是,value不能是子查询:

  

分配的值必须是Hive在其中支持的表达式   选择条款。算术运算符,UDF,强制转换,文字等等。   得到支持。不支持子查询。

请注意,where子句中允许子查询。