1

pig で次のような XML ファイルを解析したいと思います。

<person>
    <name>person1</name>
    <exp>blablabla</exp>
    <exp>blablabla</exp>
</person>

<person>
    <name>person2</name>
    <exp>blablabla</exp>
    <exp>blablabla</exp>
    <exp>blablabla</exp>
</person>

この出力を生成する Java プログラムを既に作成しました。

  • 個人の名前と ID の間のマッピングを含む最初のファイル:

1,人1

2,人2

次に、この pig コマンドを使用して、ファイルを変数にロードできます。

A = load '...' AS (i​​d_person:int, name:chararray);

  • 人物とその経験をマッピングする 2 番目のファイル

1,1,ブラブラブラ

1,2,ブラブラブラ

2,1,ブラブラブラ

2,2,ブラブラブラ

2,3,ブラブラブラ

そのようにファイルをロードします:

B = ロード '...' AS (i​​d_person:int, id_exp:int, text:chararray);

同じことをしたいのですが、豚だけを使います。出来ますか ?

ありがとう

4

1 に答える 1

1

Piggybank の org.apache.pig.piggybank.storage.XMLLoader を使用して xml データをロードできます。あなたが何を達成したいのか理解できません。出力の数値がバッグ内の位置に関連している場合 (2 番目のファイルの ID と 2 番目のフィールド)、datafu のバッグ関数の列挙 ( datafu.pig.bags.Enumerate ) を使用して、バッグ内の要素を列挙できます。次に、それらを生成して保存します。

于 2013-06-24T14:43:09.227 に答える