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

发布于 2025-01-06 06:04:11 字数 207 浏览 0 评论 0原文

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

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

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

After loading and grouping records, how can I store those grouped records into several files, one per group (=userid)?

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

I'm using Apache Pig version 0.8.1-cdh3u3 (rexported)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别理我 2025-01-13 06:04:11

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

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

Indeed, there is a MultiStorage class at Piggybank which does exactly what I want - it splits the records by a specified attribute (at index '0' in my example):

STORE records INTO 'output' USING org.apache.pig.piggybank.storage.MultiStorage('output', '0', 'none', ',');
绝不放开 2025-01-13 06:04:11
 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

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

Parameters:

  1. parentPathStr - Parent output dir path
  2. splitFieldIndex - key field index
  3. compression - 'bz2', 'bz', 'gz' or 'none'
  4. fieldDel - Output record field delimiter.

Reference: GrepCode

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文