You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Madhava Carrillo (Jira)" <ji...@apache.org> on 2020/02/06 10:56:00 UTC

[jira] [Updated] (HIVE-22833) NPE when using concatenate with AWS Glue

     [ https://issues.apache.org/jira/browse/HIVE-22833?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Madhava Carrillo updated HIVE-22833:
------------------------------------
    Description: 
When running 
{code:java}
alter table query.payment_transaction partition (insert_date='2017-10-27') concatenate;{code}
I get a NPE, with the following stack trace on the logs:
{code:java}
8-4207-837d-4fd6ea87b397): alter table query.payment_transaction partition (insert_date='2017-10-27') concatenate8-4207-837d-4fd6ea87b397): alter table query.payment_transaction partition (insert_date='2017-10-27') concatenate2020-02-05T13:55:50,840 ERROR [c8ef752c-2f03-460a-b131-ef3f6be4ddf8 main([])]: ql.Driver (SessionState.java:printError(1130)) - FAILED: SemanticException java.lang.NullPointerExceptionorg.apache.hadoop.hive.ql.parse.SemanticException: java.lang.NullPointerException at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeAlterTablePartMergeFiles(DDLSemanticAnalyzer.java:1699) at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeInternal(DDLSemanticAnalyzer.java:305) at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:258) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:512) at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1317) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1457) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1237) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1227) at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:233) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:184) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:403) at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:821) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:759) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:686) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:239) at org.apache.hadoop.util.RunJar.main(RunJar.java:153)Caused by: java.lang.NullPointerException at org.apache.hadoop.hive.ql.metadata.Partition.getSkewedColNames(Partition.java:557) at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeAlterTablePartMergeFiles(DDLSemanticAnalyzer.java:1626) ... 19 more
{code}
The table definition looks like this:
{code:java}
CREATE TABLE `query.payment_transaction`(
  `player_id` string,
  `seamless_wallet_id` string,
  `transaction_timestamp` timestamp,
  `creation_time` bigint,
  `seamless_wallet_transaction_id` string,
  `currency` string,
  `real_delta` decimal(38,18),
  `real_delta_eur` decimal(38,18),
  `transaction_type` string,
  `payment_method_id` string,
  `execution_provider` string,
  `channel` string,
  `channel_subtype` string,
  `session_id` string)
PARTITIONED BY (
  `insert_date` string)
ROW FORMAT SERDE
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
  's3://prod.casumo.bigdata.hive/casumo_query/payment_transaction'
TBLPROPERTIES (
  'spark.sql.create.version'='2.2 or prior',
  'spark.sql.sources.schema.numPartCols'='1',
  'spark.sql.sources.schema.numParts'='1',
  'spark.sql.sources.schema.part.0'='{"type":"struct","fields":[{"name":"player_id","type":"string","nullable":true,"metadata":{}},{"name":"seamless_wallet_id","type":"string","nullable":true,"metadata":{}},{"name":"transaction_timestamp","type":"timestamp","nullable":true,"metadata":{}},{"name":"creation_time","type":"long","nullable":true,"metadata":{}},{"name":"seamless_wallet_transaction_id","type":"string","nullable":true,"metadata":{}},{"name":"currency","type":"string","nullable":true,"metadata":{}},{"name":"real_delta","type":"decimal(38,18)","nullable":true,"metadata":{}},{"name":"real_delta_eur","type":"decimal(38,18)","nullable":true,"metadata":{}},{"name":"transaction_type","type":"string","nullable":true,"metadata":{}},{"name":"payment_method_id","type":"string","nullable":true,"metadata":{}},{"name":"execution_provider","type":"string","nullable":true,"metadata":{}},{"name":"channel","type":"string","nullable":true,"metadata":{}},{"name":"channel_subtype","type":"string","nullable":true,"metadata":{}},{"name":"session_id","type":"string","nullable":true,"metadata":{}},{"name":"insert_date","type":"string","nullable":true,"metadata":{}}]}',
  'spark.sql.sources.schema.partCol.0'='insert_date')
{code}
And is worth mentioning that we are using AWS Glue as a metastore, and this table was imported from a normal mysql metastore.

Can someone guide me on the solution for this?

Thank you all!

  was:
When running 
{code:java}
// code placeholder
alter table query.payment_transaction partition (insert_date='2017-10-27') concatenate;{code}
I get a NPE, with the following stack trace on the logs:
{code:java}
// code placeholder
8-4207-837d-4fd6ea87b397): alter table query.payment_transaction partition (insert_date='2017-10-27') concatenate8-4207-837d-4fd6ea87b397): alter table query.payment_transaction partition (insert_date='2017-10-27') concatenate2020-02-05T13:55:50,840 ERROR [c8ef752c-2f03-460a-b131-ef3f6be4ddf8 main([])]: ql.Driver (SessionState.java:printError(1130)) - FAILED: SemanticException java.lang.NullPointerExceptionorg.apache.hadoop.hive.ql.parse.SemanticException: java.lang.NullPointerException at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeAlterTablePartMergeFiles(DDLSemanticAnalyzer.java:1699) at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeInternal(DDLSemanticAnalyzer.java:305) at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:258) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:512) at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1317) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1457) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1237) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1227) at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:233) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:184) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:403) at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:821) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:759) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:686) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:239) at org.apache.hadoop.util.RunJar.main(RunJar.java:153)Caused by: java.lang.NullPointerException at org.apache.hadoop.hive.ql.metadata.Partition.getSkewedColNames(Partition.java:557) at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeAlterTablePartMergeFiles(DDLSemanticAnalyzer.java:1626) ... 19 more
{code}
The table definition looks like this:
{code:java}
// code placeholder
CREATE TABLE `query.payment_transaction`(
  `player_id` string,
  `seamless_wallet_id` string,
  `transaction_timestamp` timestamp,
  `creation_time` bigint,
  `seamless_wallet_transaction_id` string,
  `currency` string,
  `real_delta` decimal(38,18),
  `real_delta_eur` decimal(38,18),
  `transaction_type` string,
  `payment_method_id` string,
  `execution_provider` string,
  `channel` string,
  `channel_subtype` string,
  `session_id` string)
PARTITIONED BY (
  `insert_date` string)
ROW FORMAT SERDE
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
  's3://prod.casumo.bigdata.hive/casumo_query/payment_transaction'
TBLPROPERTIES (
  'spark.sql.create.version'='2.2 or prior',
  'spark.sql.sources.schema.numPartCols'='1',
  'spark.sql.sources.schema.numParts'='1',
  'spark.sql.sources.schema.part.0'='{"type":"struct","fields":[{"name":"player_id","type":"string","nullable":true,"metadata":{}},{"name":"seamless_wallet_id","type":"string","nullable":true,"metadata":{}},{"name":"transaction_timestamp","type":"timestamp","nullable":true,"metadata":{}},{"name":"creation_time","type":"long","nullable":true,"metadata":{}},{"name":"seamless_wallet_transaction_id","type":"string","nullable":true,"metadata":{}},{"name":"currency","type":"string","nullable":true,"metadata":{}},{"name":"real_delta","type":"decimal(38,18)","nullable":true,"metadata":{}},{"name":"real_delta_eur","type":"decimal(38,18)","nullable":true,"metadata":{}},{"name":"transaction_type","type":"string","nullable":true,"metadata":{}},{"name":"payment_method_id","type":"string","nullable":true,"metadata":{}},{"name":"execution_provider","type":"string","nullable":true,"metadata":{}},{"name":"channel","type":"string","nullable":true,"metadata":{}},{"name":"channel_subtype","type":"string","nullable":true,"metadata":{}},{"name":"session_id","type":"string","nullable":true,"metadata":{}},{"name":"insert_date","type":"string","nullable":true,"metadata":{}}]}',
  'spark.sql.sources.schema.partCol.0'='insert_date')
{code}
And is worth mentioning that we are using AWS Glue as a metastore, and this table was imported from a normal mysql metastore.

Can someone guide me on the solution for this?

Thank you all!


> NPE when using concatenate with AWS Glue
> ----------------------------------------
>
>                 Key: HIVE-22833
>                 URL: https://issues.apache.org/jira/browse/HIVE-22833
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive, ORC
>    Affects Versions: 2.3.6
>         Environment: The hive version is Hive 2.3.6-amzn-0, running on an EMR label emr-5.28.0, with Glue as a data catalog.
>            Reporter: Madhava Carrillo
>            Priority: Major
>
> When running 
> {code:java}
> alter table query.payment_transaction partition (insert_date='2017-10-27') concatenate;{code}
> I get a NPE, with the following stack trace on the logs:
> {code:java}
> 8-4207-837d-4fd6ea87b397): alter table query.payment_transaction partition (insert_date='2017-10-27') concatenate8-4207-837d-4fd6ea87b397): alter table query.payment_transaction partition (insert_date='2017-10-27') concatenate2020-02-05T13:55:50,840 ERROR [c8ef752c-2f03-460a-b131-ef3f6be4ddf8 main([])]: ql.Driver (SessionState.java:printError(1130)) - FAILED: SemanticException java.lang.NullPointerExceptionorg.apache.hadoop.hive.ql.parse.SemanticException: java.lang.NullPointerException at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeAlterTablePartMergeFiles(DDLSemanticAnalyzer.java:1699) at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeInternal(DDLSemanticAnalyzer.java:305) at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:258) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:512) at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1317) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1457) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1237) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1227) at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:233) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:184) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:403) at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:821) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:759) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:686) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:239) at org.apache.hadoop.util.RunJar.main(RunJar.java:153)Caused by: java.lang.NullPointerException at org.apache.hadoop.hive.ql.metadata.Partition.getSkewedColNames(Partition.java:557) at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeAlterTablePartMergeFiles(DDLSemanticAnalyzer.java:1626) ... 19 more
> {code}
> The table definition looks like this:
> {code:java}
> CREATE TABLE `query.payment_transaction`(
>   `player_id` string,
>   `seamless_wallet_id` string,
>   `transaction_timestamp` timestamp,
>   `creation_time` bigint,
>   `seamless_wallet_transaction_id` string,
>   `currency` string,
>   `real_delta` decimal(38,18),
>   `real_delta_eur` decimal(38,18),
>   `transaction_type` string,
>   `payment_method_id` string,
>   `execution_provider` string,
>   `channel` string,
>   `channel_subtype` string,
>   `session_id` string)
> PARTITIONED BY (
>   `insert_date` string)
> ROW FORMAT SERDE
>   'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
> STORED AS INPUTFORMAT
>   'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
> OUTPUTFORMAT
>   'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
> LOCATION
>   's3://prod.casumo.bigdata.hive/casumo_query/payment_transaction'
> TBLPROPERTIES (
>   'spark.sql.create.version'='2.2 or prior',
>   'spark.sql.sources.schema.numPartCols'='1',
>   'spark.sql.sources.schema.numParts'='1',
>   'spark.sql.sources.schema.part.0'='{"type":"struct","fields":[{"name":"player_id","type":"string","nullable":true,"metadata":{}},{"name":"seamless_wallet_id","type":"string","nullable":true,"metadata":{}},{"name":"transaction_timestamp","type":"timestamp","nullable":true,"metadata":{}},{"name":"creation_time","type":"long","nullable":true,"metadata":{}},{"name":"seamless_wallet_transaction_id","type":"string","nullable":true,"metadata":{}},{"name":"currency","type":"string","nullable":true,"metadata":{}},{"name":"real_delta","type":"decimal(38,18)","nullable":true,"metadata":{}},{"name":"real_delta_eur","type":"decimal(38,18)","nullable":true,"metadata":{}},{"name":"transaction_type","type":"string","nullable":true,"metadata":{}},{"name":"payment_method_id","type":"string","nullable":true,"metadata":{}},{"name":"execution_provider","type":"string","nullable":true,"metadata":{}},{"name":"channel","type":"string","nullable":true,"metadata":{}},{"name":"channel_subtype","type":"string","nullable":true,"metadata":{}},{"name":"session_id","type":"string","nullable":true,"metadata":{}},{"name":"insert_date","type":"string","nullable":true,"metadata":{}}]}',
>   'spark.sql.sources.schema.partCol.0'='insert_date')
> {code}
> And is worth mentioning that we are using AWS Glue as a metastore, and this table was imported from a normal mysql metastore.
> Can someone guide me on the solution for this?
> Thank you all!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)