2016-05-05 5 views
1

既存のテーブルの列に基づいて新しいテーブルを作成し、ハイブに新しいパーティションcolを追加したいとします。Hive SQLで、パーティションキーを持つ別のテーブルの列に基づいてテーブルを作成

そして、私はハイブSQLで目標を達成したいと思います。

次のSQL以外の方法や、ケトルのようなETLツールを使用する方法はありますか。

create table if not exists table_name(
col1,
col2,
col3,
……,
coln
)partitioned by dt;

コルンにどのCOL1にすでに古いテーブル、およびdtは存在していたから、パーティション・キーが新たに追加されています。

古いテーブルは大きすぎるため、数百もの列があり、リストが疲れている可能性があります。

ただし、次のSQL構文エラーを示しています

create table if not exists table_name like older_table_name partitioned by dt;

だから私は知りたいのですハイブSQLでこれを解決するために、他のより良い方法はありますか?ありがとうございました。

答えて

1

すべての列の場合とDT columnYouは、パーティションテーブルを作成するには、次の方法を使用することができます。

CREATE TABLE newtable (col1 int, col2 string) PARTITIONED BY (dt string) AS 
SELECT col1 , col2, dt FROM oldtable WHERE dt is not null; 
関連する問題