2017-08-10 1 views
0

J'utilise des fichiers Avro pour stocker des données dans HDFS. J'ai besoin de copier des données de colonnes sélectionnées d'un fichier avro et de l'envoyer à un autre emplacement dans le même cluster avec son propre fichier de schéma (qui contient les informations sur les colonnes sélectionnées). Comment puis je faire ça? Est-il possible de mettre en œuvre en utilisant Hive? ou y at-il un utilitaire dans HDFS qui peut m'aider à faire cela?Copie intracluster HDFS avec les colonnes sélectionnées

Ceci est nécessaire car un groupe doit pouvoir accéder à une table entière et un autre groupe ne doit pouvoir accéder qu'à quelques colonnes. Donc, j'ai besoin qu'ils soient dans un emplacement séparé dans HDFS avec seulement le schéma requis et le fichier avro.

+0

s'il vous plaît partager votre mot détail – Raghavendra

+0

_ "intercluster" _ implique que vous déplacez des données entre 2 clusters différents. Ce qui n'est pas le cas ici. Veuillez supprimer ce mot ou remplacer par "intracluster" (mais ce n'est pas utile). –

Répondre

0

Où sont multiples était de créer cela, je dirais que les plus simples utilisent Hive ou Spark. Dans la ruche, vous pouvez créer une table en utilisant un schéma de lecteur (uniquement avec les champs que vous voulez) et pointez l'emplacement de la table vers votre répertoire cible. Après cela, tout ce dont vous avez besoin est d'insérer à partir de votre table source en sélectionnant uniquement les champs que vous voulez dans votre table de lecteur. Juste comme un commentaire, la création d'un schéma de lecteur est une très bonne solution pour éviter la duplication de données dans des cas comme celui-ci. S'il n'y a pas d'exigence stricte pour créer un sous-ensemble de vos données, je suggère d'utiliser des schémas de lecteur