[ 
https://issues.apache.org/jira/browse/SQOOP-1395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14119083#comment-14119083
 ] 

Joey Echeverria commented on SQOOP-1395:
----------------------------------------

The new patch looks good to me from a Kite perspective.

> Use random generated class name for SqoopRecord
> -----------------------------------------------
>
>                 Key: SQOOP-1395
>                 URL: https://issues.apache.org/jira/browse/SQOOP-1395
>             Project: Sqoop
>          Issue Type: Sub-task
>          Components: tools
>            Reporter: Qian Xu
>            Assignee: Qian Xu
>            Priority: Minor
>         Attachments: SQOOP-1395.2.patch, SQOOP-1395.patch
>
>
> If you import a table "users". Sqoop will generate an entity class named 
> "users.java". The class will be compiled, submitted and used by a mapreduce 
> job. If the target file format is Avro or Parquet, an Avro schema will be 
> generated as well. According to Avro specification, the entity class is 
> described as "record", the name of the "record" is "users".
> For Parquet file format handling, we use the Kite SDK to manage Parquet file 
> reading and writing with minimal efforts. Kite requires an Avro schema and 
> all data records to be packed into GenericRecord instances. There will be a 
> problem here. Kite will read the schema first and try to instantiate a record 
> regarding its name. In this case, Kite will try to instantiate a "users" 
> class. Unfortunately, there is a "users.java" out there. This will cause 
> mapreduce job fail. 
> In order to solve this problem, I intend to keep the name of the entity class 
> and the Avro record different.
> The patch will:
> Change the record name in Avro schema.
> Remove the SqoopAvroRecord, as it is no longer required. (ClassWriter.java is 
> reverted to previous state)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to