TezでHive v1.2.1を使用しています。私は外部のパーティションテーブルを持っています。パーティションは毎時であり、p = yyyy_mm_dd_hhの形式です。状況は、hdfs内のこれらのパーティションディレクトリがいつか削除される可能性があるということです。それらが削除された後も、ハイブにはそのパーティションのメタデータが含まれており、 'show partitions'コマンドはhdfsからディレクトリが削除されたパーティションを表示します。通常、これはすべての問題を引き起こす可能性はない、と(そのディレクトリが削除された)パーティションの選択クエリは、単に空の結果をもたらすであろう:パーティションディレクトリが存在しない場合、集計クエリがハイブで失敗する
しかしhive> select * from test_tab where p='2015_01_01_01';
OK
Time taken: 2.168 seconds
、同じパーティションに対して任意の集計クエリを実行している上、
hive> select count(*) from test_tab where p='2015_01_01_01';
FAILED: SemanticException java.io.FileNotFoundException: File hdfs://localhost:8020/user/root/data/test_db/test_tab/p=2015_01_01_01 does not exist.
他の選択クエリの集計クエリと同じ動作が必要です。おそらくハイブのバグでしょう。すべての回避策 - この問題のヒントは高く評価されます。宜しくお願いします。
を実行しますフォルダを削除します。 – 54l3d
_Hiveは、パーティションのパーティションディレクトリが存在しないか、またはファイルが存在しない場合には気にしません。いずれの場合も、パーティションをフィルタリングするクエリに対しては結果が得られません。 - Programming Hiveから引用:[link](https://www.safaribooksonline.com/library/view/programming-hive/9781449326944/ch04 .html)。 Hiveがパーティションディレクトリが存在するかどうかを気にする必要がない場合、なぜaggクエリのエラーですか?これでバグだと思うのです –