2

私は豚のプログラミングが初めてで、現在、豚でHadoopジョブを実装しようとしています。これまでのところ、私の Pig プログラムは機能しています。区切り文字としてセミコロンを使用して *.txt として保存された出力ファイルがいくつかあります。私の問題は、ピッグがタプルの周りに括弧を追加することです...

これらの括弧なしで出力をファイルに保存することは可能ですか? 値を保存するだけですか?おそらく、PigStorage メソッドを UDF で上書きすることでしょうか? 誰か私にヒントがありますか?

出力ファイルをかっこなしで RDBMS (Oracle) に読み込みたい。

4

2 に答える 2

1

このトピックを最初に見つけた人のために、質問はここで答えられます: ピッグからの出力でブラケットとカンマを削除します

次のように、スクリプトで FLATTEN コマンドを使用します。

output = FOREACH [variable] GENERATE FLATTEN (($1, $2, $3));<br>
STORE output INTO '[path]' USING PigStorage(,);

フラット化する出力の 2 番目の括弧のセットに注意してください。

于 2015-11-12T07:51:21.900 に答える
1

おそらく、独自のカスタム Storer を作成する必要があります。http://wiki.apache.org/pig/Pig070LoadStoreHowToを参照してください。

単純なCSVなどとして書くのはそれほど難しくありません。必要に応じて、Oracle に直接書き込むために使用できる既存の DBStorage クラスもあります。

于 2012-12-08T01:00:38.893 に答える