我有个亲戚d:
grunt> DESCRIBE D;
D: {i: int,l: chararray}
对其应用组:
grunt> G = group D by i;
grunt> illustrate G;
-------------------------------------
| D | i:int | l:chararray |
-------------------------------------
| | 1 | B |
| | 1 | A |
| | 2 | A |
-------------------------------------
-----------------------------------------------------------------------
| G | group:int | D:bag{:tuple(i:int,l:chararray)} |
-----------------------------------------------------------------------
| | 1 | {(1, B), (1, A)} |
| | 2 | {(2, A)} |
-----------------------------------------------------------------------
如何存放每个嵌套包 G.D
在名为对应组的文件中?即。 /ouput/1
, /output/2
我知道我不能用 store
在一个 foreach
阻止。事实上,以下方法不起作用:
grunt> foreach G { store D into '/output/' + ((chararray) group) }
1条答案
按热度按时间ogsagwnx1#
MultiStorage()
这个选项对你有用。它将在piggybank jar.
你需要从这个链接下载http://www.java2s.com/code/jar/p/downloadpiggybankjar.htm 并将其设置在类路径中。例子:
输入
Pig手稿:
现在
output
文件夹包含2个名为1和2的目录,相应的组值将存储在此文件夹中。输出:
参考文献:
https://pig.apache.org/docs/r0.10.0/api/org/apache/pig/piggybank/storage/multistorage.html