开发者社区> 问答> 正文

[@小川游鱼][¥20]大数据环境中,根据一张表(idList)的数据去修改另一张表的数据(id_label),有没有比较高效的方法?

现在有一个类似的需求,在cloudera环境中,是根据一个表的数据去更新另一个表的对应的行的某个字段。

如在hive中有:

表A(字段有一个,为id),对应数据为(1,2);

表B(字段有两个,分别为 id:label),对应数据为(1:N,2:N,3:N,4:N);

现在根据需求,需要将表B中id在表A中的数据更新。

更新后表B数据应为(1:Y,2:Y,3N,4:N)

现在已经有的实现是在hive中直接通过sql做修改,但是效率很低,想问下这类问题在大数据环境中有没有更好的解决方法(如通过其他工具,现在考虑将修改的操作移回ORACLE数据库做处理),或者在hive是否有方法能对这个更新操作的效率做优化。

现在在hive的sql为update A set label ='Y' where A.id in (select id from B);

希望大大提供下思路,谢谢了

展开
收起
晓生寒 2018-12-14 16:15:42 2262 0
1 条回答
写回答
取消 提交回答
  • 不要用 a.id in (...)
    改为
    select
    case when A.id is not null then 'Y' end
    from B left outer join A on B.id = A.id

    2019-07-17 23:21:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data+AI时代大数据平台应该如何建设 立即下载
大数据AI一体化的解读 立即下载
极氪大数据 Serverless 应用实践 立即下载