You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Sergio Peña (JIRA)" <ji...@apache.org> on 2014/11/20 20:12:33 UTC
[jira] [Commented] (HIVE-8870) errors when selecting a struct field
within an array from ORC based tables
[ https://issues.apache.org/jira/browse/HIVE-8870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14219815#comment-14219815 ]
Sergio Peña commented on HIVE-8870:
-----------------------------------
I found the issue is because ORC is case sensitive.
SELECT element.elementId FROM foobar_orc; (fails)
SELECT element.elementid FROM foobar_orc; (success)
I'll fix this by lowering the case on the query elements.
> errors when selecting a struct field within an array from ORC based tables
> --------------------------------------------------------------------------
>
> Key: HIVE-8870
> URL: https://issues.apache.org/jira/browse/HIVE-8870
> Project: Hive
> Issue Type: Bug
> Components: File Formats, Query Processor
> Affects Versions: 0.13.0, 0.14.0
> Environment: HDP 2.1 / HDP 2.2 (YARN, but no Tez)
> Reporter: Michael Haeusler
> Assignee: Sergio Peña
>
> When using ORC as storage for a table, we get errors on selecting a struct field within an array. These errors do not appear with default format.
> {code:sql}
> CREATE TABLE `foobar_orc`(
> `uid` bigint,
> `elements` array<struct<elementid:bigint,foo:struct<bar:string>>>)
> STORED AS ORC;
> {code}
> When selecting from this _empty_ table, we get a direct NPE within the Hive CLI:
> {code:sql}
> SELECT
> elements.elementId
> FROM
> foobar_orc;
> -- FAILED: RuntimeException java.lang.NullPointerException
> {code}
> A more real-world query produces a RuntimeException / NullPointerException in the mapper:
> {code:sql}
> SELECT
> uid,
> element.elementId
> FROM
> foobar_orc
> LATERAL VIEW
> EXPLODE(elements) e AS element;
> Error: java.lang.RuntimeException: Error in configuring object
> at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109)
> [...]
> Caused by: java.lang.NullPointerException
> at org.apache.hadoop.hive.ql.exec.ExprNodeFieldEvaluator.initialize(ExprNodeFieldEvaluator.java:61)
> [...]
> FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
> {code}
> Both queries run fine on a non-orc table:
> {code:sql}
> CREATE TABLE `foobar`(
> `uid` bigint,
> `elements` array<struct<elementid:bigint,foo:struct<bar:string>>>);
> SELECT
> elements.elementId
> FROM
> foobar;
> -- OK
> -- Time taken: 0.225 seconds
> SELECT
> uid,
> element.elementId
> FROM
> foobar
> LATERAL VIEW
> EXPLODE(elements) e AS element;
> -- Total MapReduce CPU Time Spent: 1 seconds 920 msec
> -- OK
> -- Time taken: 25.905 seconds
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)