0

私は大きなテキストファイルをロードするPigスクリプト(私の最初)に取り組んでいます。そのテキストファイルのレコードごとに、1つのフィールドのコンテンツをRESTfulサービスに送信して処理する必要があります。評価やフィルタリングは必要ありません。データをキャプチャして送信すれば、スクリプトに何も返す必要はありません。

この種の機能にはUDFが必要だと思いますが、Pigは初めてなので、どのタイプの関数を作成する必要があるのか​​明確に把握できていません。データは最終的にどこかに保存されるので、私の推測ではストア関数ですが、その結論に至るまでの推測作業の量は、私が望むよりも多いように感じます。

洞察やガイダンスをいただければ幸いです。

4

2 に答える 2

2

似たようなことをするDBStorageを見たことがありますか?

everything = LOAD 'categories.txt' USING PigStorage() AS (category:chararray);
...
STORE ordered INTO RestStorage('https://...');
于 2010-09-30T05:53:58.820 に答える
0

これに対する答えのヒントさえ見つけられなかったので、私は別の方向に進むことに決めました。私はPigを使用して大きなファイルをロードおよび解析していますが、気になる各レコードをPHPにストリーミングして、Pigがクリーンに処理する機能を備えていないように見える追加の処理を行います。

それはまだ完全ではありません(読んでください:ミックスには非常に大きな、非常に不幸なバグがあります)が、コンセプトはしっかりしていると思います-実装の詳細を理解する必要があります。

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;
于 2010-09-29T11:31:18.217 に答える