2016-07-15 7 views
0

パーティションの名前を変更するだけで、パーティション化されたテーブルの値を変更できますか?パーティションの列の値を変更する

私が今持っているテーブルには、年と月がパーティションとしてあります。値は10進数で格納され、パーティションは「2016」ではなく「2016.0」、「3」ではなく「3.0」となりました。

ディレクトリの名前を変更し、パーティション内の値を更新することはできますか?

+0

だから、「私は、テストを実行するために探していたが、私はドンディレクトリの名前を変更するためのhdfsコマンドを参照してください。だからこれは疑わしいかもしれない。 – markwusinich

+0

私は 'hadoop fs -rename /dev/.../year=2016.0/month=4.0/dev/.../year=2016.0/month=4 'のようなことをしたいと思っていましたが、うまくいきません。 – markwusinich

+0

私はこれを試しました: '> hadoop fs -mv /dev/.../year=2016.0/month=4.0/ dev/.../年= 2016.0 /月= 4'それはディレクトリを動かしたしかし、ハイブが原因でテーブルのクエリが機能しなくなりました。原因:java.util.concurrent.ExecutionException:java.io.FileNotFoundException:ファイルhdfs://prodmid/dev/.../year=2016.0/month= 4.0は存在しません。」 – markwusinich

答えて

3

まず、ディレクトリの名前を変更:

hadoop fs -mv /dev/year=2016.0 /dev/year=2016 
hadoop fs -mv /dev/year=2016/month=4.0 /dev/year=2016/month=4 

はハイブメタストアが新しい場所/パーティションについて知ってみましょう:

ALTER TABLE logs PARTITION(year = 2014, month = 4) 
SET LOCATION 'hdfs://dev/year=2016/month=4'; 
関連する問題