如何用pig将分组记录存储到多个文件中?

wribegjk  于 2021-06-21  发布在  Pig
关注(0)|答案(2)|浏览(249)

加载和分组记录后,如何将这些分组的记录存储到多个文件中,每组一个(=userid)?

records = LOAD 'input' AS (userid:int, ...);
grouped_records = GROUP records BY userid;

我使用的是apache pig版本0.8.1-cdh3u3(rexported)

kyvafyod

kyvafyod1#

实际上,piggybank中有一个multistorage类,它完全符合我的要求—它通过指定的属性(在我的示例中的索引“0”处)拆分记录:

STORE records INTO 'output' USING org.apache.pig.piggybank.storage.MultiStorage('output', '0', 'none', ',');
8hhllhi2

8hhllhi22#

A = LOAD 'mydata' USING PigStorage() as (a, b, c);  
 STORE A INTO '/my/home/output' USING MultiStorage('/my/home/output','0', 'bz2', '\\t');

参数:
parentpathstr-父输出目录路径
splitfieldindex-关键字字段索引
压缩-“bz2”、“bz”、“gz”或“无”
fielddel—输出记录字段分隔符。
参考:grepcode

相关问题