2016-04-13 11 views
0

私は毎日データが追加されるハイブテーブルを持っています。 したがって、毎日約5つのファイルが追加されます。 これで、この表の下に800個のファイルが完成しました。約800個のファイルを持つハイブテーブルを持つマッパーを制御する

私が持っている問題は、マッパーがファイルの数に比例するため、どこにでもこのテーブルに参加しているか使用しているということです。

しかし、私は自分のジョブを実行するためにテーブル全体を使用する必要があります。

テーブル全体を使用する方法はありますが、あまりに多くのマッパーをトリガーする方法はありませんか?

ファイルが

-rw-rw-r-- 3 XXXX hdfs  106610 2015-12-15 05:39 /apps/hive/warehouse/prod.db/TABLE1/000000_0_copy_1.deflate 
-rw-rw-r-- 3 XXXX hdfs  106602 2015-12-23 12:31 /apps/hive/warehouse/prod.db/TABLE1/000000_0_copy_10.deflate 
-rw-rw-r-- 3 XXXX hdfs  157686 2016-03-06 05:20 /apps/hive/warehouse/prod.db/TABLE1/000000_0_copy_100.deflate 
-rw-rw-r-- 3 XXXX hdfs  163580 2016-03-07 05:22 /apps/hive/warehouse/prod.db/TABLE1/000000_0_copy_101.deflate 

答えて

0

下回るようになり、データがパーティションのディレクトリに格納されており、照会いつでも、パーティションの下のファイルのみにアクセスし、そのためマッパーがされているように、私は、テーブルを分割することを好みますそのパーティション列が使用されたときにハイブクエリでトリガされます。

その他のオプションは、CLUSTER BY句を使用してテーブルをバケット化して、固定番号にデータを分散することです。バケットディレクトリの数を減らし、したがって、照会中にアクセスされるファイルの数が増えます。

関連する問題