嗨,我想知道如何在Hadoop Pig中实现查找逻辑。我有一组记录,比如一个博客用户,需要回去从他第一次访问时获取一些字段(不是当前的)。
这在Java中是可行的,但我们是否有办法在Hadoop pig中实现它。
示例:
假设要遍历由col1
和col2
标识的特定用户,请在lookup_col
中输出该用户的第一个值,在这种情况下为“1”。
col1 col2 lookup_col
---- ---- -----
326 8979 1
326 8979 4
326 8979 3
326 8979 0
答案 0 :(得分:1)
您可以将其实现为猪UDF。
或者,您也可以使用简单的类似SQL的逻辑并按用户聚合访问(不确定如何定义用户以及您计划如何查看用户访问但这是另一回事)并获取第一个然后使用agg_visits左连接用户。
Pig中的'复制连接'实际上是一个在节点之间分布并加载到内存中的集合中的查找。但是,您可以获得多个结果,因为它是JOIN操作,而不是查找 - 因此,如果您事先聚合数据,则确保每个键只有一个记录。