每天,oracle的“user”表都会被转储到hdfs中。转储仅包含在上一次转储之后所做的最新更改(插入和更新)。现在我想使用pig将所有每日转储加载到一个关系中,并使用“userid”字段将其与事务文件连接起来。问题在于更新的记录。同一用户可以有多条记录。我只想在执行连接时使用最新的用户记录。我们怎样才能做到这一点。感谢您的帮助。谢谢您。
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; };
1条答案
按热度按时间klsxnrf11#
您需要对更新文件进行分组,按日期排序,然后选择第一个文件,然后加入该文件上的。类似下面的代码应该可以让您获得最新的更新