我正在加載大型文本文件的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://...');