Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Hive, mail # dev - Re: Review Request 15105: HIVE-3844: Unix timestamps don't seem to be read correctly from HDFS as Timestamp column


Copy link to this message
-
Re: Review Request 15105: HIVE-3844: Unix timestamps don't seem to be read correctly from HDFS as Timestamp column
Venki Korukanti 2014-02-06, 22:37


> On Nov. 14, 2013, 9:28 a.m., Jason Dere wrote:
> > serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyTimestamp.java, line 92
> > <https://reviews.apache.org/r/15105/diff/2/?file=374513#file374513line92>
> >
> >     Maybe consider using TimestampWritable.decimalToTimestamp() here. Looks like this is what the cast operator ends up using.

Updated the patch to use existing code in TimestampWritable
> On Nov. 14, 2013, 9:28 a.m., Jason Dere wrote:
> > serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyTimestamp.java, line 96
> > <https://reviews.apache.org/r/15105/diff/2/?file=374513#file374513line96>
> >
> >     If you are allowing numeric value to timestamp conversion, not sure if it needs to be so strict that it returns null because of the nanos. Looks like TimestampWritable.decimalToTimestamp() behavior isn't so strict.

As the new patch is using TimestampWritable, this is not a problem anymore as the decimalToTimestamp is not so strict here.
- Venki
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15105/#review28864
-----------------------------------------------------------
On Feb. 6, 2014, 10:37 p.m., Venki Korukanti wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15105/
> -----------------------------------------------------------
>
> (Updated Feb. 6, 2014, 10:37 p.m.)
>
>
> Review request for hive and Mark Grover.
>
>
> Bugs: HIVE-3844
>     https://issues.apache.org/jira/browse/HIVE-3844
>
>
> Repository: hive-git
>
>
> Description
> -------
>
> Currently LazyTimestamp can only interpret timestamps in JDBC format. If there are UNIX epoch styles timestamps it treats them as invalid and output NULL. This patch is to support all three types of formats mentioned here https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-Timestamps.
>
> BigDecimal is used to avoid rounding off errors with atoi/atof type of conversions.
>
>
> Diffs
> -----
>
>   data/files/timestamp_data.txt PRE-CREATION
>   ql/src/test/queries/clientpositive/timestamp_4.q PRE-CREATION
>   ql/src/test/queries/clientpositive/timestamp_null.q 36f3541
>   ql/src/test/results/clientpositive/timestamp_4.q.out PRE-CREATION
>   ql/src/test/results/clientpositive/timestamp_null.q.out 57269d7
>   serde/src/java/org/apache/hadoop/hive/serde2/io/TimestampWritable.java 435d6c6
>   serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyTimestamp.java 27895c5
>
> Diff: https://reviews.apache.org/r/15105/diff/
>
>
> Testing
> -------
>
> Fix includes a unittest which reads from a file that has most types of timestamp formats.
>
>
> Thanks,
>
> Venki Korukanti
>
>