在hadoop中处理更新的记录

brtdzjyr  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(254)

每天,oracle的“user”表都会被转储到hdfs中。转储仅包含在上一次转储之后所做的最新更改(插入和更新)。现在我想使用pig将所有每日转储加载到一个关系中,并使用“userid”字段将其与事务文件连接起来。问题在于更新的记录。同一用户可以有多条记录。我只想在执行连接时使用最新的用户记录。我们怎样才能做到这一点。感谢您的帮助。谢谢您。

klsxnrf1

klsxnrf11#

您需要对更新文件进行分组,按日期排序,然后选择第一个文件,然后加入该文件上的。类似下面的代码应该可以让您获得最新的更新

A = LOAD 'user_updates'...;
A_Users = GROUP A BY user_id;
A_TOP = FOREACH A_Users {
  sorted = ORDER A BY update_time DESC;
  top_one = LIMIT sorted 1;
  GENERATE top_one;
};

相关问题