在Apache Pig中,可以使用GROUP BY和COUNT函数来找出包中最频繁出现的值。下面是一个示例代码:
首先,假设我们有一个包含不同商品的数据集,每行包含商品名称和价格。我们想找出最频繁出现的商品名称。
apple,10
orange,15
banana,5
apple,10
banana,5
apple,10
orange,15
-- 加载数据集
products = LOAD 'products.txt' USING PigStorage(',') AS (name:chararray, price:int);
-- 按商品名称分组并计数
name_count = GROUP products BY name;
frequent_name = FOREACH name_count GENERATE group AS name, COUNT(products) AS count;
-- 找出最频繁出现的商品名称
ordered_names = ORDER frequent_name BY count DESC;
most_frequent_name = LIMIT ordered_names 1;
-- 输出结果
DUMP most_frequent_name;
pig -x local find_most_frequent.pig
输出结果将是最频繁出现的商品名称和出现次数,例如:
(apple,3)
这表示"apple"是出现最频繁的商品名称,并且出现了3次。