[
https://issues.apache.org/jira/browse/HIVE-9033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14238422#comment-14238422
]
Sergio Peña commented on HIVE-9033:
-----------------------------------
There is one test that still fails on Java8:
ql/src/test/queries/clientpositive/parquet_map_null.q
Java8 expects the following output:
{noformat}
< {"key1":null,"key2":"val2"}
< {"key3":"val3","key4":null}
< {"key3":"val3","key4":null}
< {"key3":"val3","key4":null}
< {"key3":"val3","key4":null}
---
> {"key2":"val2","key1":null}
> {"key4":null,"key3":"val3"}
> {"key4":null,"key3":"val3"}
> {"key4":null,"key3":"val3"}
> {"key4":null,"key3":"val3"}
{noformat}
I found the problem is because the test is creating a parque table from an avro
table; and avro is getting the map data as HashMap objects. This HashMap is
returned by the Avro API.
The line where this is happening is:
{noformat}
File: AvroGenericRecordReader.java
public boolean next(NullWritable nullWritable, AvroGenericRecordWritable
record) throws IOException {
...
GenericData.Record r = (GenericData.Record)reader.next();
...
}
{noformat}
GenericData.Record is a list of HashMaps.
> Fix ordering differences due to Java8 (part 2)
> ----------------------------------------------
>
> Key: HIVE-9033
> URL: https://issues.apache.org/jira/browse/HIVE-9033
> Project: Hive
> Issue Type: Sub-task
> Reporter: Sergio Peña
> Assignee: Sergio Peña
> Attachments: HIVE-9033.2.patch
>
>
> Java 8 uses a different hash function for HashMap, which is leading to
> iteration order differences in several cases. (See Java8 vs Java7)
> This is a second part of ordering fixes to help divide the work with other
> contributors.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)