Uploaded image for project: 'Pig'
  1. Pig
  2. PIG-1748

Add load/store function AvroStorage for avro data



    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.9.0
    • impl
    • None
    • Reviewed
    • Pig Avro


      We want to use Pig to process arbitrary Avro data and store results as Avro files. AvroStorage() extends two PigFuncs: LoadFunc and StoreFunc.

      Due to discrepancies of Avro and Pig data models, AvroStorage has:
      1. Limited support for "record": we do not support recursively defined record because the number of fields in such records is data dependent.
      2. Limited support for "union": we only accept nullable union like ["null", "some-type"].

      For simplicity, we also make the following assumptions:
      If the input directory is a leaf directory, then we assume Avro data files in it have the same schema;
      If the input directory contains sub-directories, then we assume Avro data files in all sub-directories have the same schema.

      AvroStorage takes no input parameters when used as a LoadFunc (except for "debug [debug-level]").
      Users can provide parameters to AvroStorage when used as a StoreFunc. If they don't, Avro schema of output data is derived from its
      Pig schema.

      Detailed documentation can be found in http://linkedin.jira.com/wiki/display/HTOOLS/AvroStorage+-+Pig+support+for+Avro+data


        1. PIG-1748-3.patch
          127 kB
          Jakob Homan
        2. PIG-1748-2.patch
          126 kB
          Jakob Homan
        3. AvroStorageUtils-bagfix.patch
          1 kB
          Russell Jurney
        4. avro_test_files.tar.gz
          5 kB
          Jakob Homan
        5. avro_storage.patch
          128 kB
          lin guo

        Issue Links



              guolin2001 lin guo
              guolin2001 lin guo
              0 Vote for this issue
              14 Start watching this issue