2017-09-21 5 views
0

Je souhaite effectuer la fusion au niveau des données afin de réduire le nombre de bandes. C'est parce que j'ai des fichiers qui sont traités toutes les heures et beaucoup de petits fichiers ORC sont créés par partition. Je sais que la concaténation de hive peut fusionner des fichiers au niveau stripe. Si je concatène, la fusion de fichiers se produit uniquement au niveau de la bande comme si de nombreuses bandes étaient ajoutées. Je finis par avoir plusieurs bandes avec seulement 2-3 lignes. Je voudrais avoir moins de rayures avec plus de lignes dedans.fusionner Fichier Orc au niveau de données non Stripe niveau

Répondre

0

merge.orcfile.stripe.level = false devrait fonctionner, mais je ne l'ai pas fait fonctionner sur notre cluster.

J'ai dû écrire un programme personnalisé qui lisait et combinait les fichiers.

+0

Salut @Joel, nous avons essayé de faire la même chose, mais c'est aussi bon que la fusion au niveau bande. Nous avons un traitement de fichiers incrémentiel, et cela continue de générer plusieurs fichiers chaque jour. Je ne peux pas faire d'écrasement et créer une table différente, coz, quand l'écrasement se produit sur la table, à ce moment les données seraient vides. Est-ce que votre programme personnalisé fait quelque chose de différent? Merci pour votre contribution. Très appréciée. – user72

+0

Notre programme personnalisé suit les fichiers qu'il combine dans un fichier temporaire. Ensuite, il exécute un échange, en supprimant les petits fichiers et renomme le grand fichier combiné à sa place. –