1

hdfsにフォルダーがあります
/user/test/year=2016/month=04/dt=25/000000_0

上記のパーティション パスをテストテーブルに追加する必要があります。

指図 :

ALTER TABLE test ADD IF NOT EXISTS PARTITION (year=2016,month=04,dt=25)

ただし、このパーティションの追加コマンドは、月のパーティションの先頭のゼロを無視し、2016 内に月 = 4 として余分なフォルダーを作成します。 テーブルは、データを含まないこのパスを/user/test/year=2016/month=04/ /user/test/year=2016/month=4/ 指します。/user/test/year=2016/month=4/

私は言うログをチェックしました WARN org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer - Partition Spec month=04 has been changed to month=4

誰かがこの種の問題に直面したかどうか、またこれを回避する方法を教えてください。

ハイブのバージョン: 1.2.1000

4

2 に答える 2

2

パーティションに整数型を使用しています。文字列パーティションと引用符を使用するよりも先行ゼロが必要な場合:ALTER TABLE test ADD IF NOT EXISTS PARTITION (year='2016',month='04',dt='25')

于 2016-06-25T17:04:28.363 に答える
0

MSCK REPAIR TABLE testパーティション フォルダが既に作成されている場合に使用できます。すべてのディレクトリをスキャンし、新しいパーティションを作成します。詳細については、Hive 言語マニュアルを参照してください。または、パーティション列に INT ではなく STRING を使用する必要があります。

于 2016-06-24T20:23:10.673 に答える