2015-03-17 2 views
0

У меня есть образец данных, где я хочу разместить город на отдельной колонке. Город может быть определен после знака запятой. Как я могу сделать это с помощью таланта. Какой компонент я должен использовать?Извлечь название города в Talend

Вот пример данных. С левой стороны находится мой вход, а справа должен быть правильный выход.

enter image description here

+0

Город всегда приходит к последним зельям поданного адреса? Если да, то вы можете использовать этот row1.Address.split (",") и взять последний индекс массива для получения последнего слова. – UmeshR

+0

есть. это всегда после запятой. –

ответ

1

Вы можете использовать функцию разделения в TMAP. используйте код ниже в столбце города, просто измените поле адреса dwetl с вашим фактическим именем столбца.

!Relational.ISNULL(row7.dwetl_Address)?row7.dwetl_Address.split(",")[1]:"default City" 
2

Вы можете поставить логику для извлечения города либо в TMAP (создать переменный в TMAP делать синтаксический), или вы можете использовать компонент tJavaRow, чтобы сделать это.

Просто выполните поиск методов indexOf и подстроки, чтобы выполнить синтаксический анализ.

Например, в tJavaRow вы можете использовать

output_row.city = input_row.addressfield.substring(input_row.addressfield.indexOf(",")+1).trim(); 
0

Как уже упоминалось выше, вы можете создать свою собственную процедуру и сделать его более универсальным с помощью StringTokenizer (вы можете использовать раскол, но я предпочитаю позже), а затем вы можете также передать строку разделитель в подпрограмму в качестве аргумента и и вернуть позицию по своему усмотрению.

Это приведет к тому, что подпрограмма будет повторно использоваться, и вы также сможете ее использовать позже. И подпрограмма может быть вызвана через tMap.

Смежные вопросы