【问题标题】:How to store grouped records into multiple files with Pig?如何使用 Pig 将分组记录存储到多个文件中?
【发布时间】:2012-02-16 15:52:51
【问题描述】:

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

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

我正在使用 Apache Pig 版本 0.8.1-cdh3u3(重新导出)

【问题讨论】:

标签: java hadoop apache-pig


【解决方案1】:

确实,Piggybank 处有一个 MultiStorage 类,它完全符合我的要求 - 它按指定属性(在我的示例中位于索引“0”处)分割记录:

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

【讨论】:

  • 你知道如何做同样的事情,但我不想指定压缩格式,而是想以 RC 格式存储我的文件?
  • 对不起 Emtiaz,我不知道。
【解决方案2】:
 A = LOAD 'mydata' USING PigStorage() as (a, b, c);  
 STORE A INTO '/my/home/output' USING MultiStorage('/my/home/output','0', 'bz2', '\\t');

参数:

  1. parentPathStr - 父输出目录路径
  2. splitFieldIndex - 关键字段索引
  3. 压缩 - 'bz2'、'bz'、'gz' 或 'none'
  4. fieldDel - 输出记录字段分隔符。

参考:GrepCode

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多