我有一个猪脚本,它对不同的客户进行分组和计数,如下所示
by_customer = GROUP customer BY (start_date, spc);
cust_cnt = FOREACH by_customer {
cust = DISTINCT customer.cid;
GENERATE FLATTEN(group), COUNT(cust);
};
问题是最后一个减速器由于内存问题而挂起或失败。我可以看到分布在 reducer 之间的数据是高度倾斜的。有没有办法分配 group by 的输出,使得每个 reducer 只得到一个分组包。