2016-08-26 2 views
0

私はパーティションをマウントする必要があるときはいつでもこれを実行する必要があります。手動で行うのではなく、外部のハイブテーブルのパーティションを自動検出する方法があります。ハイブで外部表を使用すると、パーティションをインテリジェントに識別できますか?

ALTER TABLE TableName ADD IF NOT EXISTS PARTITION()location 'locationpath'; 
+0

あなたはそこにどのパーティションを追加していますか?私は 'PARTITION()'の空白を意味します – abhiieor

答えて

0

動的パーティションを使用すると、ディレクトリを手動で作成する必要はありません。しかし、動的パーティションモードは、それが厳密であるデフォルトで、非厳密に設定する必要が

CREATE External TABLE profile (
userId int 
) 
PARTITIONED BY (city String) 
location '/user/test/profile'; 

set hive.exec.dynamic.partition.mode=nonstrict; 

hive> insert into profile partition(city) 
     select * from nonpartition; 

hive> select * from profile; 
OK 
1 Chicago 
1 Chicago 
2 Orlando 

とHDFSに

[[email protected] ~]$ hdfs dfs -ls /user/test/profile 
Found 2 items 
drwxr-xr-x - cloudera supergroup   0 2016-08-26 
22:40 /user/test/profile/city=Chicago 
drwxr-xr-x - cloudera supergroup   0 2016-08-26 
22:40 /user/test/profile/city=Orlando 
関連する問題