0

每天,来自 oracle 的“用户”表都会被转储到 HDFS 中。转储仅包含上次转储后所做的最近更改(插入和更新)。现在我想使用 PIG 将所有每日转储加载到一个关系中,并使用“userid”字段将其与事务文件连接起来。问题在于更新的记录。同一个用户可以有多个记录。我只想在加入时使用最新的用户记录。我们应该怎么做。任何帮助表示赞赏。谢谢你。

4

1 回答 1

0

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

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;
};
于 2013-04-26T23:08:40.040 回答