首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用预排序数据加速蜂巢或猪的聚集

使用预排序数据加速蜂巢或猪的聚集
EN

Stack Overflow用户
提问于 2015-06-27 15:26:19
回答 1查看 285关注 0票数 1

我想在Amazon上加速一个简单的Apache (0.13.1)或Pig (版本0.12.0)的聚合工作。我的数据已经在需要聚合的键上排序了,我希望作业能够利用这一点。

蜂巢:

代码语言:javascript
复制
[..some 'set' calls etc...]
CREATE EXTERNAL TABLE ngrams (gram string, year int, occurrences bigint,pages bigint, books bigint)
  ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
  STORED AS TEXTFILE
  LOCATION 's3://mybucket/3gram/';
INSERT OVERWRITE TABLE s3 select gram, sum(occurrences) from ngrams where year >= 1910 group by gram;

对于Hive,我找不到一个方法来告诉它数据已经被排序了。

猪:

代码语言:javascript
复制
ngrams = LOAD 's3://mybucket/3gram/' AS (ngram:chararray, year:int, counter:int, pages:int);
filtered = FILTER ngrams BY year >= 1910;
grouped = GROUP filtered BY (ngram);
summed = FOREACH grouped GENERATE group, SUM(filtered.counter);

对于Pig,我发现GROUP ... USING 'collected'应该使用排序,但我得到:

代码语言:javascript
复制
While using 'collected' on group; data must be loaded via loader implementing CollectableLoadFunc

那么,如何以排序的方式加载数据呢?我在网上找到了LOADUSING org.apache.hadoop.zebra.pig.TableLoader()的例子,但是Pig抱怨说它不知道这个类。

EN

回答 1

Stack Overflow用户

发布于 2015-06-28 16:24:12

首先,如果斑马不是hadoop的一部分,就需要REGISTER

如果您需要构建jar:

  1. 得到生猪12.0的来源
  2. 编译猪
  3. 编译斑马( ant zebra) 寄存器'/yourpath/pig-0.12.0/build/contrib/zebra/zebra-0.8.0-dev.jar';

其次,据我所知(并尝试过),您不能使用LOAD格式(通常的文本文件)使用TableLoader。数据必须事先与TableStorer一起存储,后者将以面向列的格式写入数据,并包含模式。

您可以尝试这样做,并检查输出/错误:

代码语言:javascript
复制
ngrams_row = LOAD 's3://mybucket/3gram/' AS (ngram: chararray, year:int, counter: int, pages: int);
STORE ngrams_row INTO 's3://mybucket/3gram-zebra/' using org.apache.hadoop.zebra.pig.TableStorer('[ngram];[year,counter,pages]');
ngrams_zebra = LOAD 's3://mybucket/3gram-zebra/' USING org.apache.hadoop.zebra.pig.TableLoader('ngram,year,counter,pages', 'sorted'); 

DESCRIBE ngrams_zebra;
DUMP ngrams_zebra;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31090330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档