sqoop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Lin via Review Board <nore...@reviews.apache.org>
Subject Re: Review Request 60587: SQOOP-3039 - Sqoop unable to export Time data "13:14:12.1234" into Time colum in RMDBS
Date Sat, 02 Jun 2018 21:13:47 GMT


> On Sept. 24, 2017, 11:18 a.m., Sandish Kumar HN wrote:
> > src/java/org/apache/sqoop/orm/Time.java
> > Lines 18 (patched)
> > <https://reviews.apache.org/r/60587/diff/2/?file=1768240#file1768240line18>
> >
> >     no new line between licence comment and package declaration.

New line already there, but sure if I misunderstood the issue.


- Eric


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/60587/#review186057
-----------------------------------------------------------


On June 2, 2018, 9:13 p.m., Eric Lin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/60587/
> -----------------------------------------------------------
> 
> (Updated June 2, 2018, 9:13 p.m.)
> 
> 
> Review request for Sqoop, Boglarka Egyed, Attila Szabo, and Szabolcs Vasas.
> 
> 
> Bugs: SQOOP-3039
>     https://issues.apache.org/jira/browse/SQOOP-3039
> 
> 
> Repository: sqoop-trunk
> 
> 
> Description
> -------
> 
> To re-produce:
> 
> Set up MySQL database with following schema:
> 
> {code}
> CREATE TABLE `test` (
>   `a` time(2) DEFAULT NULL
> ) ENGINE=InnoDB DEFAULT CHARSET=latin1
> {code}
> 
> Store the following data in HDFS:
> 
> {code}
> 16:56:53.0999
> 16:56:54.1
> 16:56:53.0000
> 16:56:54.1230
> {code}
> 
> run Sqoop export command to copy data from HDFS into MySQL:
> 
> {code}
> qoop export --connect jdbc:mysql://<mysql-host>/test --username root --password
password --table test  -m 1 --driver com.mysql.jdbc.Driver  --export-dir /tmp/test
> {code}
> 
> Command will fail with the following error:
> 
> {code}
> java.lang.RuntimeException: Can't parse input data: '16:56:53.0999'
>         at t5.__loadFromFields(t5.java:223)
>         at t5.parse(t5.java:166)
>         at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:89)
>         at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:39)
>         at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
>         at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64)
>         at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
>         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
>         at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:422)
>         at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>         at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
> Caused by: java.lang.NumberFormatException: For input string: "53.0999"
>         at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
>         at java.lang.Integer.parseInt(Integer.java:580)
>         at java.lang.Integer.parseInt(Integer.java:615)
>         at java.sql.Time.valueOf(Time.java:108)
>         at t5.__loadFromFields(t5.java:215)
>         ... 12 more
> {code}
> 
> Looks like Sqoop uses java.sql.Time.valueOf function to convert "16:56:53.0999" to Time
object, however, this function only accepts Time in "hh:mm:ss" format:
> 
> https://docs.oracle.com/javase/7/docs/api/java/sql/Time.html#valueOf(java.lang.String)
> 
> 
> Diffs
> -----
> 
>   src/java/org/apache/sqoop/lib/JdbcWritableBridge.java d9628dcc 
>   src/java/org/apache/sqoop/manager/ConnManager.java c80dd5d9 
>   src/java/org/apache/sqoop/orm/ClassWriter.java a4a768af 
>   src/java/org/apache/sqoop/orm/Time.java PRE-CREATION 
>   src/test/org/apache/sqoop/TestExport.java f32f620f 
>   src/test/org/apache/sqoop/orm/TestTime.java PRE-CREATION 
> 
> 
> Diff: https://reviews.apache.org/r/60587/diff/3/
> 
> 
> Testing
> -------
> 
> Test cases + manual tests
> 
> 
> Thanks,
> 
> Eric Lin
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message