2010-09-24 79 views
0

我正在加载大型文本文件的Pig脚本(我的第一个)。对于该文本文件中的每条记录,一个字段的内容需要发送到RESTful服务进行处理。没有什么需要评估或过滤。捕获数据,发送它并且脚本不需要任何返回。在Pig脚本中调用RESTful服务

我假设这种功能需要一个UDF,但我已经足够新的了,以至于我没有清楚地了解我应该构建的函数的类型。我最好的猜测是Store Function,因为数据最终会被存储在某个地方,但我觉得在得出这个结论时涉及的猜测量比我想要的要多。

任何洞察力或指导将不胜感激。

回答

0

从来没有找到答案的提示,我决定朝不同的方向前进。我使用Pig来加载和分析大文件,但随后将我关心的每个记录都传输到PHP,以进行额外的处理,而Pig似乎没有干净处理的能力。

这是still not complete (read: there's a great big, very unhappy bug in the mix),但我认为这个概念是可靠的 - 只需要制定实施细节。

everything = LOAD 'categories.txt' USING PigStorage() AS (category:chararray); 
-- apply filter 
-- apply filter 
-- ... 
-- apply last filter 
ordered = ORDER filtered_categories BY category; 

streamed = STREAM limited THROUGH `php -nF process_categories.php`; 
DUMP streamed; 
2

你有没有看过DBStorage它做了类似的事情?

everything = LOAD 'categories.txt' USING PigStorage() AS (category:chararray); 
... 
STORE ordered INTO RestStorage('https://...');