pig错误:无法打开别名的迭代器

j8ag8udp  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(315)

这是我的Pig剧本:

json = LOAD '/tmp/events/*/*/flume-.*' USING JsonLoader('state:chararray, city:chararray, promotionType:chararray, promotionPlace: chararray, purchase:int');
grouped = FOREACH (group json BY (state, city, promotionType, promotionPlace)) GENERATE group, SUM(json.purchase) as purchase;
grpd = GROUP grouped BY group.city;
top1 = foreach grpd {sorted = order grouped by purchase desc;top = limit sorted 1;generate group, flatten(top);};
DUMP top1;

它适用于多个文件,但对于多个文件(3k),它会给出错误:“无法打开alias top1的迭代器”。有什么办法解决这个问题吗?

o4hqfura

o4hqfura1#

如果你的代码除了一些文件外大部分都是有效的,那么当“更努力地思考”并不能解决问题时,你可能想做的是:
查找发生错误的文件并保留此数据
尝试数据的上半部分,如果出现错误,保留该部分并转到1
尝试底部部分(只是为了确保),如果出现错误,请转到1
在几个步骤中,应该只剩下一行导致错误的代码,而且应该很容易检查。

相关问题