You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by bi...@apache.org on 2012/04/24 08:58:34 UTC

svn commit: r1329569 - in /pig/trunk/contrib/piggybank/java/src: main/java/org/apache/pig/piggybank/storage/avro/AvroStorage.java test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorage.java

Author: billgraham
Date: Tue Apr 24 06:58:34 2012
New Revision: 1329569

URL: http://svn.apache.org/viewvc?rev=1329569&view=rev
Log:
PIG-2257 - AvroStorage doesn't recognize schema_file field when JSON isn't used in the constructor (billgraham)

Modified:
    pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorage.java
    pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorage.java

Modified: pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorage.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorage.java?rev=1329569&r1=1329568&r2=1329569&view=diff
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorage.java (original)
+++ pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorage.java Tue Apr 24 06:58:34 2012
@@ -377,6 +377,7 @@ public class AvroStorage extends FileInp
             } else if (name.equalsIgnoreCase("data")
                          || name.equalsIgnoreCase("same")
                          || name.equalsIgnoreCase("schema")
+                         || name.equalsIgnoreCase("schema_file")
                          || name.matches("field\\d+")) {
                 /* store value as string */
                 map.put(name, value);

Modified: pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorage.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorage.java?rev=1329569&r1=1329568&r2=1329569&view=diff
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorage.java (original)
+++ pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorage.java Tue Apr 24 06:58:34 2012
@@ -330,6 +330,29 @@ public class TestAvroStorage {
         verifyResults(output, expected);
     }
 
+    // Same as above, just without using json in the constructor
+    @Test
+    public void testRecordWithFieldSchemaFromTextWithSchemaFile2() throws IOException {
+        PigSchema2Avro.setTupleIndex(1);
+        String output= outbasedir + "testRecordWithFieldSchemaFromTextWithSchemaFile2";
+        String expected = basedir + "expected_testRecordWithFieldSchema.avro";
+        deleteDirectory(new File(output));
+        String [] queries = {
+          " avro = LOAD '" + testTextFile + "' AS (member_id:int, browser_id:chararray, tracking_time:long, act_content:bag{inner:tuple(key:chararray, value:chararray)});",
+          " avro1 = FILTER avro BY member_id > 1211;",
+          " avro2 = FOREACH avro1 GENERATE member_id, browser_id, tracking_time, act_content ;",
+          " STORE avro2 INTO '" + output + "' " +
+                " USING org.apache.pig.piggybank.storage.avro.AvroStorage (" +
+                "'schema_file', '" + testRecordSchema + "'," +
+                "'field0','int'," +
+                "'field1','def:browser_id'," +
+                "'field3','def:act_content'" +
+                ");"
+           };
+        testAvroStorage( queries);
+        verifyResults(output, expected);
+    }
+
     private static void deleteDirectory (File path) {
         if ( path.exists()) {
             File [] files = path.listFiles();