我正在加载大型文本文件的Pig脚本(我的第一个)。对于该文本文件中的每条记录,一个字段的内容需要发送到RESTful服务进行处理。没有什么需要评估或过滤。捕获数据,发送它并且脚本不需要任何返回。在Pig脚本中调用RESTful服务
我假设这种功能需要一个UDF,但我已经足够新的了,以至于我没有清楚地了解我应该构建的函数的类型。我最好的猜测是Store Function,因为数据最终会被存储在某个地方,但我觉得在得出这个结论时涉及的猜测量比我想要的要多。
任何洞察力或指导将不胜感激。
我正在加载大型文本文件的Pig脚本(我的第一个)。对于该文本文件中的每条记录,一个字段的内容需要发送到RESTful服务进行处理。没有什么需要评估或过滤。捕获数据,发送它并且脚本不需要任何返回。在Pig脚本中调用RESTful服务
我假设这种功能需要一个UDF,但我已经足够新的了,以至于我没有清楚地了解我应该构建的函数的类型。我最好的猜测是Store Function,因为数据最终会被存储在某个地方,但我觉得在得出这个结论时涉及的猜测量比我想要的要多。
任何洞察力或指导将不胜感激。
从来没有找到答案的提示,我决定朝不同的方向前进。我使用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;
你有没有看过DBStorage它做了类似的事情?
everything = LOAD 'categories.txt' USING PigStorage() AS (category:chararray);
...
STORE ordered INTO RestStorage('https://...');