3

私は PIG スクリプトを作成し、JSON を操作するのは初めてです。PIG でマルチレベルの json ファイルを解析する必要があります。言う、

{
     "firstName": "John",
     "lastName" : "Smith",
     "age"      : 25,
     "address"  :
     {
         "streetAddress": "21 2nd Street",
         "city"         : "New York",
         "state"        : "NY",
         "postalCode"   : "10021"
     },
     "phoneNumber":
     [
         {
           "type"  : "home",
           "number": "212 555-1234"
         },
         {
           "type"  : "fax",
           "number": "646 555-4567"
         }
     ]
 }

JsonLoader() を使用して単一レベルの json を解析し、結合やその他の操作を実行して、目的の結果を JsonLoader('name:chararray,field1:int .....'); として取得できます。PIG 0.10.0 の組み込み JsonLoader() 関数を使用して、上記の JSON ファイルを解析することは可能ですか。もしそれが。それがどのように行われ、特定の JSON のフィールドにアクセスするかを説明してください。

4

3 に答える 3

3

Twitter の Elephant Bird: https://github.com/kevinweil/elephant-birdを使用して、ネストされた json の読み込みを処理できます。

a = LOAD 'file3.json' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad')

これにより、JSON がマップhttp://pig.apache.org/docs/r0.11.1/basic.html#map-schema に解析されます。JSONArray はマップの DataBag に解析されます。

于 2013-06-13T07:42:30.710 に答える
1

独自の UDF を作成することで可能になります。簡単な UDF の例を以下のリンクに示します。

http://pig.apache.org/docs/r0.9.1/udf.html#udf-java

于 2014-07-14T04:23:33.470 に答える