2016-08-19 50 views
1

我试图从子查询更新Hive表,我知道配置单元不支持这种更新。有没有解决这个问题的方法?Hive子查询更新

我的更新看起来像这样

UPDATE tmp_aka 
    SET guid = (SELECT mguid FROM tmp_maxs 
             WHERE tmp_maxs.guid = tmp_aka.guid); 
+0

如果您在> 0.14以及支持事务的表上,UPDATE可以正常工作。 – visakh

+0

是的,我知道。其实我的问题是如何使用子查询更新表。我在EMR上使用配置单元2.1.0 – hlagvankar

回答

0

可能是你可以创建一个表的SELECT语句的结果和新创建的表中插入与插入一个新值表中选择值

0

你可以执行子查询中的联接以获得与上面的查询中相同的值。以下工作?

UPDATE tmp_aka SET guid =(SELECT mguid FROM tmp_aka tmp JOIN tmp_maxs ON tmp_aka.guid = tmp_maxs.guid);