0
パーティションの名前を変更するだけで、パーティション化されたテーブルの値を変更できますか?パーティションの列の値を変更する
私が今持っているテーブルには、年と月がパーティションとしてあります。値は10進数で格納され、パーティションは「2016」ではなく「2016.0」、「3」ではなく「3.0」となりました。
ディレクトリの名前を変更し、パーティション内の値を更新することはできますか?
パーティションの名前を変更するだけで、パーティション化されたテーブルの値を変更できますか?パーティションの列の値を変更する
私が今持っているテーブルには、年と月がパーティションとしてあります。値は10進数で格納され、パーティションは「2016」ではなく「2016.0」、「3」ではなく「3.0」となりました。
ディレクトリの名前を変更し、パーティション内の値を更新することはできますか?
まず、ディレクトリの名前を変更:
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';
だから、「私は、テストを実行するために探していたが、私はドンディレクトリの名前を変更するためのhdfsコマンドを参照してください。だからこれは疑わしいかもしれない。 – markwusinich
私は 'hadoop fs -rename /dev/.../year=2016.0/month=4.0/dev/.../year=2016.0/month=4 'のようなことをしたいと思っていましたが、うまくいきません。 – markwusinich
私はこれを試しました: '> 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