2016-10-10 4 views
1

から外部パーティション表にもディレクトリパーティションのために列を追加アブロファイルに基づいてハイブに外部表を作成することが可能です:ハイブ:アブロ

だが、私はそうで/data/demo/dt=2016-02-01に格納されたデータを持っていると言ってみましょう。私は、次のことを試してみましたが、私はテーブルから選択するとき、私は0行を取得:

CREATE EXTERNAL TABLE demo 
    PARTITIONED BY (date STRING) 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' 
    STORED AS AVRO 
    LOCATION '/data/demo/' 
    TBLPROPERTIES ('avro.schema.url' = 'hdfs:///path/to/schema.avsc'); 

私はPARTITIONED BY句を使用せずに試してみましたし、私はしかし、明らかにkey=valueディレクトリパーティションなしのレコードを取得します。これはすべて可能ですか?パーティション名は、あなたのケースdt、ないdateにあるので

答えて

2

、あなたはPARTITIONED BY (dt string)を使用する必要があり、その後、あなたはまだメタストアにパーティションを追加する必要があります。

ALTER TABLE demo ADD PARTITION (dt='2016-02-01') 

あなたは、いくつかのパーティションを持っている場合は、テーブル

msck repair table demo 
+0

ありがとうございます、日付(dtの代わりに)は途中でタイプミスでした。repairテーブルは自動的に追加されます。 – Ian