【发布时间】:2015-08-22 00:12:14
【问题描述】:
我编写了一个 udf (extends EvalFunc<Tuple>),其中包含带有内部元组(嵌套)的输出元组。
例如转储看起来像:
(((photo,photos,photo)))
(((wedg,wedge),(audusd,audusd)))
(((quantum,quantum),(mind,mind)))
(((cassi,cassie),(cancion,canciones)))
(((calda,caldas),(nova,novas),(rodada,rodada)))
(((fingerprint,fingerprint),(craft,craft),(easter,easter)))
现在我想处理每个术语,区分它并给它一个 id (RANK)。为此,我需要去掉括号。一个简单的FLATTEN在这种情况下没有帮助。
最终的输出应该是这样的:
1 photo
2 photos
3 wedg
4 wedge
5 audusd
6 quantum
7 mind
....
我的代码(不是 udf 部分,也不是原始解析):
tags = FOREACH raw GENERATE FLATTEN(tags) AS tag;
tags_distinct = DISTINCT tags;
tags_sorted = RANK tags_distinct BY tag;
DUMP tags_sorted;
【问题讨论】:
标签: nested tuples apache-pig flatten udf