1

3列のテーブルがあります。ここで、列の 1 つをパーティション列として変更する必要があります。可能性はありますか?そうでない場合、どうすれば既存のテーブルにパーティションを追加できますか。以下の構文を使用しました: create table t1 (eno int, ename string ) データ ローカル '/....path/' をテーブル t1 にロードします。 alter table t1 add partition (p1='india');

エラーが発生しています........

既存のテーブルにパーティションを追加する方法を知っている人はいますか......?

前もって感謝します。

4

3 に答える 3

1

私はこれが直接可能だとは思わない。パーティションを追加すると新しいディレクトリ構造が必要になるため、Hive は HDFS 内のファイルを完全に再配置して分割する必要があります。

私がお勧めするのは、目的のスキーマとパーティションで新しいテーブルを作成し、すべてを最初から2番目に挿入することです。

于 2012-09-25T18:28:11.460 に答える
0

テーブルの既存の列をパーティションに変換する方法はないと思います。テーブルにパーティションを追加する場合は、既に行ったように ALTER コマンドを使用します。外部テーブルを扱っている場合は、場所フィールドも指定します。管理対象テーブルに対して ALTER コマンドを使用してパーティションを追加できるかどうかわかりません。

于 2015-01-09T06:21:12.113 に答える