La ruche: la création de la Table avec multi-fichiers avec plusieurs répertoires
Je veux créer un tableau de la Ruche où l'entrée les fichiers texte sont parcourus sur plusieurs sous-répertoires dans hdfs. Donc, exemple, j'ai dans hdfs:
/testdata/user/Jan/part-0001
/testdata/user/Feb/part-0001
/testdata/user/Mar/part-0001
and so on...
Si je veux créer un tableau de l'utilisateur dans la ruche, mais il est être capable de traverser les sous-répertoires de l'utilisateur, qui peut être fait? J'ai essayé quelque chose comme ça, mais ne fonctionne pas;
CREATE EXTERNAL TABLE users (id int, name string)
STORED AS TEXTFILE LOCATION '/testdata/user/*'
J'ai pensé à l'ajout du générique pourrait fonctionner, mais ne le fait pas. Quand j'ai essayé de ne pas l'utilisation générique ne fonctionne toujours pas. Cependant, si je copie les fichiers dans le répertoire racine de l'utilisateur, puis il travaille. Il n'y a pas moyen de la Ruche à la traversée de l'enfant-répertoires, et de récupérer ces fichiers?
OriginalL'auteur user706794 | 2012-01-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer une table externe, puis ajouter les sous-dossiers des partitions.
C'est aussi l'une des choses cool sur la façon de la Ruche stocke les données. Avec les données stockées de cette manière, et représentées comme des partitions, la partition de données devient une colonne virtuelle. Cela signifie que lorsque vous effectuez une requête d'une manière qui limite les résultats à un sous-ensemble de dates (dans ce cas), la Ruche n'a qu'à chercher dans quelques endroits, plutôt que de scanner l'ensemble du jeu de données pour votre réponse.
Ce doit être sélectionné comme acceptée réponse - il répond à la question. Vous avez m'a aidé, aussi, donc merci de répondre!
OriginalL'auteur Rufus
J'ai fini par utiliser un shell script comme ci-dessous pour un cas d'utilisation où le sous-répertoires ne sont pas connus a priori.
OriginalL'auteur Dhanesh
Ruche utilise des sous-répertoires comme des partitions de données, il suffit d':
Qui devrait le faire pour vous.
Définir "Ne fonctionne pas". Je devrais aussi mentionner que vous devez changer votre répertoire de noms month=Jan, etc...
OriginalL'auteur Steve Severance
n'a pas fonctionné pour moi dans CDH5.7
OriginalL'auteur Kai Zhang