2017-03-21 1 views
1

J'ai beaucoup de fichiers csv dans un Azure Data Lake, constitué de données de différents types (par exemple, pression, température, vrai/faux). Ils sont tous horodatés et je dois les rassembler dans un seul fichier en fonction de l'horodatage à des fins d'apprentissage automatique. C'est assez facile à faire en Java - démarrer un flux de fichiers, lancer une boucle sur le dossier qui ouvre chaque fichier, comparer les horodatages pour écrire des valeurs pertinentes dans le fichier de sortie, démarrer une nouvelle colonne (aller à la fin de la première ligne) chaque fichier. Alors que j'ai travaillé sur le problème de l'horodatage dans U-SQL, j'ai de la difficulté à trouver une syntaxe qui va m'aider à l'exécuter sur tout le dossier. La syntaxe générique {*} traite tous les fichiers comme le même groupe de fichiers alors que j'ai besoin d'exécuter une sorte de boucle pour joindre une colonne de chaque fichier individuellement. Y at-il un moyen de le faire, peut-être en utilisant des colonnes virtuelles?Comment ajouter des colonnes de plusieurs fichiers dans U-SQL dans ADLA?

Répondre

1

D'abord vous devez penser à votre problème fonctionnel/déclaratif et non basé sur des paradigmes procéduraux tels que des boucles. Laissez-moi essayer de reformuler votre question pour voir si je peux vous aider. Vous avez beaucoup de fichiers csv avec des données horodatées. Des fichiers différents peuvent avoir des lignes avec le même horodatage et vous souhaitez que toutes les lignes pour le même horodatage (ou plage de timestamps) soient affichées dans un fichier spécifique. Donc, vous voulez essentiellement repartitionner les données?

Quel est le format de chacun des fichiers? Ont-ils tous le même schéma ou des schémas différents? Dans le dernier cas, comment pouvez-vous les différencier? Basé sur le nom de fichier? Faites-moi savoir dans les commentaires si c'est une reformulation déclarative correcte et les réponses à mes questions et je vais augmenter ma réponse à l'étape suivante.

+0

Merci! Bien sûr, j'ai vraiment du mal à regarder le problème. Le format de chaque fichier comprend deux ou trois colonnes. Horodatage - Valeur - Unité. La colonne unité peut ou peut ne pas être présente (par exemple, pour les champs Vrai/Faux). Chaque fichier n'est pas la même unité/champ. Par exemple, un fichier pourrait être la température et une autre pression de l'air et un autre vrai/faux. Je cherche à combiner ces fichiers séparés afin que chaque champ soit une colonne séparée et coordonnée par l'horodatage le plus proche. Les horodatages ne sont pas exactement les mêmes pour chaque fichier. Ai-je un sens? –