【发布时间】:2012-12-20 02:10:42
【问题描述】:
我编写了一个 Pig 脚本,它将通过 Python UDF 执行一些图像处理。
做了一些操作后,我有类似的东西(例如):
A = load 'data.txt' using PigStorage('|') as (name:chararray, pixelIntensity:float);
B = group A by pixelIntensity;
dump B;
B 是这样的:
(131.0,{(image1,jpg,131.0), (image2.jpg,131.0), (image3.jpg,131.0)})
(140.0,{(image5.jpg,140.0), (image5.jpg,140.0)})
(150.0,{(image4.jpg,150.0})
如果我去
dump A;
我会得到以下信息:
(image1.jpg,131.0)
(image2.jpg,131.0)
(image3.jpg,131.0)
(image4.jpg,150.0)
(image5.jpg,140.0)
所以我基本上使用它们的平均像素强度作为关键对它们进行了分组。
我的问题是这样的:
我是否只能从 B 中的每一行中提取 1 个元素?例如,我会喜欢
(image1.jpg,131.0)
(image4.jpg,150.0)
...
【问题讨论】:
-
我知道 Pig 有一个 LIMIT 构造,但我不确定它是否可以与 GROUP
BY... 一起使用
标签: key apache-pig key-value