【トラブル】【Hive】Hive / Partition に関するトラブルシューティング

■ はじめに

https://dk521123.hatenablog.com/entry/2020/05/27/175610

などで、でてきたトラブルを纏める

目次

【1】エラー「Column repeated in partitioning columns」が発生する
【2】エラー「Need to specify partition columns」が表示

※ その他のHiveに関するトラブルシュートは、以下の関連記事を参照のこと。

Hive に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/11/20/174039

【1】エラー「Column repeated in partitioning columns」が発生する

エラー内容

FAILED:SemanticException [Error 10035]: Column repeated in partitioning columns

原因

英語のメッセージ
Column repeated in partitioning columns
⇒ パーティション項目内に、項目重複された

発生例

CREATE EXTERNAL TABLE person (
  id BIGINT,
  name STRING,
  created_date TIMESTAMP -- ★
)
PARTITIONED BY (created_date TIMESTAMP) -- ★
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION 's3://your-s3-buket/demo';

解決案

パーティションで使っている項目をテーブル項目から除外する

修正例

CREATE EXTERNAL TABLE person (
  id BIGINT,
  name STRING
)
PARTITIONED BY (created_date TIMESTAMP) -- ★
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION 's3://your-s3-buket/demo';

【2】エラー「Need to specify partition columns」が表示

エラー内容

SemanticException [Error 10062]:
Need to specify partition columns because the destination table is partitioned

発生したHQL

CREATE EXTERNAL TABLE IF NOT EXISTS person(
id string,
name string)
PARTITIONED BY (
created_at string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION 's3://your-bucket/hello/world/';

INSERT INTO TABLE person
SELECT
 id,
 name,
 created_at 
FROM
  temp_person;

原因

INSERT INTO TABLE した際に、partitionを明示的に指定していなかったため。

発生したHQL

-- PARTITION(created_at) を追加
INSERT INTO TABLE person PARTITION(created_at)
SELECT
 id,
 name,
 created_at 
FROM
  temp_person;

参考文献
https://kaoru2012.blogspot.com/2018/07/hivesemanticexception-error-10062-need.html

関連記事

Amazon EMR ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/05/27/175610
Amazon EMR ~ EMRFS ~
https://dk521123.hatenablog.com/entry/2020/11/13/145545
Amazon EMR に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/08/05/144724
Hive / HiveQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/11/25/235219
Hive / HiveQL ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2020/03/04/225943
Hive / HiveQL ~ パーティション / Partition 機能 ~
https://dk521123.hatenablog.com/entry/2020/07/16/224332
Hive に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/11/20/174039
エラー「SemanticException Cartesian products are disabled for safety reasons」が発生する
https://dk521123.hatenablog.com/entry/2021/06/12/093046
EMR / DBアクセス に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/06/17/114611
テーブルアクセス時に例外「Vertex failed, ... InvalidInputException」が発生する
https://dk521123.hatenablog.com/entry/2021/07/06/120134