Search code examples
apache-pig

MultiLevel JSON in PIG


I am new to PIG scripting and working with JSONs. I am in the need of parsing multi-level json files in PIG. Say,

{
     "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"
         }
     ]
 }

I am able to parse a single level json through JsonLoader() and do join and other operations and get the desired results as JsonLoader('name:chararray,field1:int .....'); Is it possible to parse the above mentioned JSON file using the built-in JsonLoader() function of PIG 0.10.0. If it is. Please explain me how it is done and accessing fields of the particular JSON?


Solution

  • It is possible by creating your own UDF. A simple UDF example is shown in below link

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