在 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调用例程。
我这里有一个示例数据,我想将城市放在单独的列中。可以在逗号后定义城市。我怎么能用 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调用例程。