Как объединить 2 столбца, который содержит несколько данных - PullRequest
0 голосов
/ 03 марта 2020

Я работаю с Talend 6.3. Я хочу объединить 2 колонны в Tmap. Но в отдельных строках есть несколько данных, и я хочу сопоставить их первым с первым в строке другого столбца.

Пример:

2 столбца: Имя и Фамилия

По имени -> у меня есть: Кевин, Зои, Алан

По фамилии -> У меня есть: Монта, Рей, Зом

И я хочу другой ряд, соединяющий Кевина с Монтой Зоя с Рей, Алан с Зом. Как это сделать с talend , потому что в tmap, если я объединяю classi c. У меня будет только одна успешная конкатенация.

Не знаю, правильно ли я объяснил, но скажите, если кому-то нужна дополнительная информация.

Заранее спасибо

Работа :

enter image description here

Добавить другие данные -> Логин - ID

enter image description here

enter image description here

Ответы [ 3 ]

1 голос
/ 03 марта 2020

Итак, у нас есть поток с идентификатором и двумя столбцами (имя и фамилия), каждый из которых содержит n элементов. n может варьироваться от строки к строке.

Цель состоит в том, чтобы получить окончательный поток с объединением всех имен + фамилий с неизменным идентификатором.

Это не Супер Talend-y способ, но вы можете использовать tFlowToIterate, чтобы получить доступ к каждой строке индивидуально и выполнить сопряжение имени + фамилии.

После этого мы получим доступ к результирующему списку и используем tNormalize, чтобы разделить его:

screenshot job

Код для компонента t Java:

List<String> nameList = Arrays.asList(((String)globalMap.get("row5.Name")).split("\\s*,\\s*"));
List<String> surnameList = Arrays.asList(((String)globalMap.get("row5.Surname")).split("\\s*,\\s*"));

for (int index = 0; index < nameList.size(); index++) {
    ((ArrayList<String>) context.concat).add(((Integer)globalMap.get("row5.id")) + ";" + nameList.get(index) + ";" + surnameList.get(index));
}

Код для tFixedFlowInput «Использовать контекст (список)»:

StringHandling.EREPLACE(StringHandling.EREPLACE(context.concat.toString(),"\\[",""),"\\]","")

Результат:
enter image description here

0 голосов
/ 10 марта 2020

Это код для установки глобальной переменной со списком

Это код для получения моего списка

enter image description here

И у меня есть такой результат (у первого организация пустая, у первого и второго должен быть santeffi, не смотрите первый столбец, второй - хороший) enter image description here

что данные перед javaRow (код и клевета находятся в другом столбце) enter image description here

0 голосов
/ 03 марта 2020

Извините, вот так: enter image description here

Конкатенация работает, когда в столбце есть только одни данные. Только Кевин и только Монта в челс. Может быть, это причина моего tDernormalize в схеме.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...