Talend — une ligne de nombreux, en nombre variable de lignes de sortie
De fond: Il est courant dans Talend pour utiliser quelque chose comme tSplitRow à la carte une ligne avec de nombreux champs sur plusieurs lignes. Une ligne avec les champs:
Date | Name | MorningPhone | Day Phone | EveningPhone
...pourrait être divisé en:
Date | Name | Phone
... et vous aurez toujours 3 lignes obtenues à partir d'une ligne.
Question: Ce que si je veux le nombre de lignes à partir d'un nombre variable de champs?
J'ai un schéma: UniqueID | FieldSet
où FieldSet est délimité dans le domaine de colonnes divisible par neuf. Si il y a 45 champs, dans cette délimité par colonne, je veux 5 lignes. 81 champs => 9 lignes.
Je suis en train d'utiliser tJavaRow pour analyser les champs, mais je ne sais pas comment les combiner avec tSplitRow pour générer le bon nombre de champs.
Idées? Merci!
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé une coutume tJavaRow -- ce fut un format de chaîne de caractères dans une nouvelle table. Une sorte de hack, mais cela a fonctionné.
Talend a évolué depuis que cette question a été faite, et une bien meilleure façon de le faire est d'utiliser tNormalize composant.
Tout d'abord, nous utilisons un fichier de ce type d'entrée:
Nous lire ce fichier à l'aide de tFileInputRegex composant. Nous avons à définir l'expression régulière et le schéma. L'expression régulière sera:
Le schéma sera:
Ensuite, nous nous connectons tFileInputRegex avec un tNormalize. Nous avons mis le séparateur à:
Et enfin, nous utilisons la sortie que nous avons besoin.