2017-12-29 38 views
0

私はHiveにパーティション化されたORCテーブルを持っています。すべての可能なパーティションをテーブルにロードした後、私はHDFSを取得します。複数のORCファイル、つまりHDFSの各パーティションディレクトリにはORCファイルがあります。いくつかのユースケースでは、各パーティションの下にあるこれらのORCファイルをすべて1つの大きなORCファイルに結合する必要があります。Partitioned Hive ORCテーブルの複数のORCファイル(各パーティションに属する)を単一の大きなORCファイルに結合する方法

私は、これらの複数のORCファイル(各パーティションに属する)を1つの大きなORCファイルに結合する方法を提案できますか?

パーティショニングされたテーブルから新しいNon Partitioned ORCテーブルを作成しようとしましたが、ファイル数は減らしますが、1つのファイルには減らしていません。

PS:別のマップからテーブルを作成することは完全にマップタスクであるため、プロパティ 'set mapred.reduce.tasks = 1;'を使用してレデューサーの数を1に設定します。助けにならない。

おかげ

答えて

0

あなたは小さなオークのファイルを結合するCONCATENATEコマンドを使用することができます。これは、パーティション・レベルだけでなく、テーブルで行うことができます。 構文はorcドキュメントごとに:

ユーザーが自分のテーブルまたはパーティションにCONCATENATEコマンドを発行 によって一緒に小さなORCファイルの効率的なマージを要求することができます。ファイル は再初期化せずにストライプレベルでマージされます。

ALTER TABLE istari [PARTITION partition_spec] CONCATENATE; 
関連する問題