嗨,我想知道如何在hadoop pig中实现查找逻辑。我有一组记录,比如说一个weblog用户的记录,需要回去从他的第一次访问(不是当前访问)中获取一些字段。
这在java中是可行的,但是我们有没有办法在hadoop中实现呢。
例子:
假设遍历一个特定的用户,由 col1
以及 col2
,输出中该用户的第一个值 lookup_col
,在本例中为“1”。
col1 col2 lookup_col
---- ---- -----
326 8979 1
326 8979 4
326 8979 3
326 8979 0
1条答案
按热度按时间cuxqih211#
您可以将其实现为pig udf。
或者,您也可以使用简单的类似sql的逻辑,按用户聚合访问(不确定如何定义用户以及计划如何查找按用户访问,但这是另一回事)并获取第一个,然后使用agg\ u访问将用户加入。
pig中的“复制连接”本质上是对分布在节点之间并加载到内存中的集合的查找。但是,您可以得到不止一个结果,因为它是一个联接操作,而不是一个查找操作—因此,如果您事先聚合了数据,那么您可以确保每个键只有一个记录。