You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Rohini Palaniswamy (JIRA)" <ji...@apache.org> on 2014/01/09 19:04:50 UTC

[jira] [Created] (PIG-3661) Piggybank AvroStorage fails if used in more than one load or store statement

Rohini Palaniswamy created PIG-3661:
---------------------------------------

             Summary: Piggybank AvroStorage fails if used in more than one load or store statement
                 Key: PIG-3661
                 URL: https://issues.apache.org/jira/browse/PIG-3661
             Project: Pig
          Issue Type: Bug
    Affects Versions: 0.11.1
            Reporter: Rohini Palaniswamy
            Assignee: Rohini Palaniswamy
             Fix For: 0.13.0


To reproduce:
A =load '/tmp/data' as (a1:int, a2:int, a3:int);
B = load '/tmp/data1' as (b1:chararray, b2:chararray, b3:chararray);
store A into '/tmp/out/a' using org.apache.pig.piggybank.storage.avro.AvroStorage();
store B into '/tmp/out2/b' using org.apache.pig.piggybank.storage.avro.AvroStorage();

It either fails in the map job if schema is incompatible, or B gets schema of A and B merged leading to incorrect results.

Reason is schema is stored and accessed from a property of UDFContext without using a context signature.

UDFContext context = UDFContext.getUDFContext();
        Properties property = context.getUDFProperties(ResourceSchema.class);
        String prevSchemaStr = property.getProperty(AVRO_OUTPUT_SCHEMA_PROPERTY);



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)