每天oracle的'user'表都会被转储到HDFS。转储只包含上次转储之后所做的最近更改(插入和更新)。现在我想使用PIG将所有的日常转储加载到一个关系中,并使用'userid'字段将其与Transaction文件连接起来。问题出在更新的记录上。同一个用户可以有多条记录。我只想在执行连接时使用最近的用户记录。我们怎么能做到呢?任何帮助都是感激的。谢谢你。
您需要对更新文件进行分组,按日期排序并选择第一个,然后将其加入其中。下面的代码应该会给你最新的更新
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;
};