[
https://issues.apache.org/jira/browse/SQOOP-332?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13103038#comment-13103038
]
Joseph Boyd commented on SQOOP-332:
-----------------------------------
I think I'll leave the patch as-is, and ask for any comments on it.
I looked at ClassWriter a bit. ClassWriter is using
com.cloudera.sqoop.orm.TableClassName internally to pick a class name.
TableClassName is defaulting to a class named 'QueryResult' when no table name
was specified on the command line, AND no class name was given on the command
line.
That look at ClassWriter left me thinking that a simple default like
'QueryResult' is useful enough for this JIRA:
- Forcing a match to TableClassName's choice probably wouldn't suit some people
- Adding another sqoop option (--avro-record-name or similar) just for setting
the avro record name seems a bit too much at this point.
> Cannot use --as-avrodatafile with --query
> -----------------------------------------
>
> Key: SQOOP-332
> URL: https://issues.apache.org/jira/browse/SQOOP-332
> Project: Sqoop
> Issue Type: Bug
> Components: codegen
> Affects Versions: 1.3.0, 1.4.0
> Reporter: Aaron Kimball
> Assignee: Joseph Boyd
> Attachments: SQOOP-332.patch
>
>
> Using sqoop with --as-avrodatafile and --query to specify a freeform query
> causes an exception:
> {code}11/08/30 19:55:28 ERROR sqoop.Sqoop: Got exception running Sqoop:
> org.apache.avro.AvroRuntimeException: Can't set a property to null: tableName
> org.apache.avro.AvroRuntimeException: Can't set a property to null: tableName
> at org.apache.avro.Schema$Props.add(Schema.java:124)
> at org.apache.avro.Schema.addProp(Schema.java:166)
> at
> com.cloudera.sqoop.orm.AvroSchemaGenerator.generate(AvroSchemaGenerator.java:69)
> at
> com.cloudera.sqoop.mapreduce.DataDrivenImportJob.configureMapper(DataDrivenImportJob.java:78)
> at
> com.cloudera.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:175)
> at
> com.cloudera.sqoop.manager.SqlManager.importQuery(SqlManager.java:442)
> at com.cloudera.sqoop.tool.ImportTool.importTable(ImportTool.java:352)
> at com.cloudera.sqoop.tool.ImportTool.run(ImportTool.java:423)
> at com.cloudera.sqoop.Sqoop.run(Sqoop.java:144)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
> at com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:180)
> at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:219)
> at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:228)
> at com.cloudera.sqoop.Sqoop.main(Sqoop.java:237){code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira