[jira] [Updated] (PIG-1748) Add load/store function AvroStorage for avro data
[ https://issues.apache.org/jira/browse/PIG-1748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russell Jurney updated PIG-1748: Attachment: AvroStorageUtils-bagfix.patch This patch is a fix for a bug for persisting bags of tuples via AvroStorage. The script that alerted me to a bug is: messages = LOAD '/tmp/messages.avro' USING AvroStorage(); user_groups = GROUP messages by user_id; per_user = FOREACH user_groups { sorted = ORDER messages BY message_id DESC; GENERATE group AS user_id, sorted AS messages; } DESCRIBE per_user per_user: {user_id: int,messages: {(message_id: int,topic: chararray,user_id: int)}} STORE per_user INTO '/tmp/per_user.avro' USING AvroStorage(); The error is: Pig Stack Trace --- ERROR 1002: Unable to store alias per_user org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1002: Unable to store alias per_user at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1596) at org.apache.pig.PigServer.registerQuery(PigServer.java:584) at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:942) at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386) at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:188) at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:164) at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:67) at org.apache.pig.Main.run(Main.java:487) at org.apache.pig.Main.main(Main.java:108) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.hadoop.util.RunJar.main(RunJar.java:156) Caused by: java.lang.NullPointerException at org.apache.pig.piggybank.storage.avro.AvroStorageUtils.isTupleWrapper(AvroStorageUtils.java:327) at org.apache.pig.piggybank.storage.avro.PigSchema2Avro.convert(PigSchema2Avro.java:82) at org.apache.pig.piggybank.storage.avro.PigSchema2Avro.convert(PigSchema2Avro.java:105) at org.apache.pig.piggybank.storage.avro.PigSchema2Avro.convertRecord(PigSchema2Avro.java:151) at org.apache.pig.piggybank.storage.avro.PigSchema2Avro.convert(PigSchema2Avro.java:62) at org.apache.pig.piggybank.storage.avro.AvroStorage.checkSchema(AvroStorage.java:502) at org.apache.pig.newplan.logical.rules.InputOutputFileValidator$InputOutputFileVisitor.visit(InputOutputFileValidator.java:65) at org.apache.pig.newplan.logical.relational.LOStore.accept(LOStore.java:77) at org.apache.pig.newplan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:64) at org.apache.pig.newplan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:66) at org.apache.pig.newplan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:66) at org.apache.pig.newplan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:66) at org.apache.pig.newplan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:66) at org.apache.pig.newplan.DepthFirstWalker.walk(DepthFirstWalker.java:53) at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:50) at org.apache.pig.newplan.logical.rules.InputOutputFileValidator.validate(InputOutputFileValidator.java:45) at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.compile(HExecutionEngine.java:292) at org.apache.pig.PigServer.compilePp(PigServer.java:1360) at org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1297) at org.apache.pig.PigServer.execute(PigServer.java:1286) at org.apache.pig.PigServer.access$400(PigServer.java:125) at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1591) ... 13 more Add load/store function AvroStorage for avro data - Key: PIG-1748 URL: https://issues.apache.org/jira/browse/PIG-1748 Project: Pig Issue Type: Improvement Components: impl Reporter: lin guo Assignee: lin guo Fix For: 0.9.0 Attachments: AvroStorageUtils-bagfix.patch, PIG-1748-2.patch, PIG-1748-3.patch, avro_storage.patch, avro_test_files.tar.gz 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.
[jira] [Updated] (PIG-1748) Add load/store function AvroStorage for avro data
[ https://issues.apache.org/jira/browse/PIG-1748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jakob Homan updated PIG-1748: - Assignee: lin guo (was: Jakob Homan) Add load/store function AvroStorage for avro data - Key: PIG-1748 URL: https://issues.apache.org/jira/browse/PIG-1748 Project: Pig Issue Type: Improvement Components: impl Reporter: lin guo Assignee: lin guo Fix For: 0.9.0 Attachments: PIG-1748-2.patch, PIG-1748-3.patch, avro_storage.patch, avro_test_files.tar.gz 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 -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (PIG-1748) Add load/store function AvroStorage for avro data
[ https://issues.apache.org/jira/browse/PIG-1748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Daniel Dai updated PIG-1748: Release Note: (was: Patch committed to trunk. Thanks Lin, Jakob!) Add load/store function AvroStorage for avro data - Key: PIG-1748 URL: https://issues.apache.org/jira/browse/PIG-1748 Project: Pig Issue Type: Improvement Components: impl Reporter: lin guo Assignee: Jakob Homan Fix For: 0.9.0 Attachments: PIG-1748-2.patch, PIG-1748-3.patch, avro_storage.patch, avro_test_files.tar.gz 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://snaprojects.jira.com/wiki/display/HTOOLS/AvroStorage+-+Pig+support+for+Avro+data -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (PIG-1748) Add load/store function AvroStorage for avro data
[ https://issues.apache.org/jira/browse/PIG-1748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jakob Homan updated PIG-1748: - Attachment: avro_test_files.tar.gz Attaching binary test avro files used by unit tests. Need to be untgz'ed and placed in contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/avro_test_files by reviewer/committer Add load/store function AvroStorage for avro data - Key: PIG-1748 URL: https://issues.apache.org/jira/browse/PIG-1748 Project: Pig Issue Type: Improvement Components: impl Reporter: lin guo Attachments: avro_storage.patch, avro_test_files.tar.gz, PIG-1748-2.patch 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://snaprojects.jira.com/wiki/display/HTOOLS/AvroStorage+-+Pig+support+for+Avro+data -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.