2010-09-24 94 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://...');