在 Talend 中提取城市名称

Extract City Name in Talend

我这里有一个示例数据,我想将城市放在单独的列中。可以在逗号后定义城市。我怎么能用 talend 做到这一点。我应该使用什么组件?

这是示例数据。左边是我的输入,右边应该是正确的输出。

您可以将提取城市的逻辑放在 tMap 中(在 tmap 中创建变量以进行解析),或者您可以使用 tJavaRow 组件来执行此操作。

只需搜索 indexOf 和 substring 方法即可进行解析。

例如在 tJavaRow 中你可以使用

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

您可以在tMap中使用拆分功能。在城市列中使用以下代码只需将 dwetl 地址字段更改为您的实际列名。

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

如上所述,您可以创建自己的例程并使用 StringTokenizer 使其更通用(您可以使用 split 但我更喜欢后者),然后您还可以将字符串分隔符作为参数传递给例程,并且return位置随意。

这将使例程可重复使用,您也可以在以后使用它。并且可以通过tMap调用例程。