回收Pig中的关系名称是个好主意吗?特别是,如果我总是在整个脚本中使用一个且只有一个名称,例如:
relation1 = LOAD 'myfile.txt';
relation1 = FILTER relation1 BY ($1 > 0);
relation1 = GROUP relation1 BY $2;
是否以及如何影响表现?
答案 0 :(得分:2)
这绝对是valid in Pig
,但不推荐。我正在粘贴猪文档链接中的信息
可以reuse relation names
;例如,这是合法的:
A = load 'NYSE_dividends' (exchange, symbol, date, dividends);
A = filter A by dividends > 0;
A = foreach A generate UPPER(symbol);
然而,it is not recommended.
在这里看起来好像你正在重新分配A,但实际上你正在创建一个名为A,losing track of the old relations called A
的新关系。猪很聪明,可以跟上,但它仍然是not a good practice
。在尝试阅读您的程序(我指的是哪个?)以及阅读错误消息时会导致混淆。
<强>参考:强>
http://chimera.labs.oreilly.com/books/1234000001811/ch05.html#pl_general