我这里有一个示例数据,我想将城市放在一个单独的列上。可以在逗号后面定义城市。我怎么能用talend做到这一点。我应该使用什么组件?
这是示例数据。在左侧是我的输入,右侧应该是正确的输出。
答案 0 :(得分:2)
您可以将用于提取城市的逻辑放在tMap中(在tmap中创建变量以进行解析),或者您可以使用tJavaRow组件来执行此操作。
只需搜索indexOf和substring方法即可进行解析。
例如在tJavaRow中,您可以使用
output_row.city = input_row.addressfield.substring(input_row.addressfield.indexOf(",")+1).trim();
答案 1 :(得分:1)
您可以在tMap中使用split函数。使用城市列中的代码,只需使用您的实际列名更改dwetl地址字段。
!Relational.ISNULL(row7.dwetl_Address)?row7.dwetl_Address.split(",")[1]:"default City"
答案 2 :(得分:0)
如上所述,您可以创建自己的例程并使用StringTokenizer使其更通用(您可以使用split但我更喜欢后者)然后您还可以将字符串分隔符作为参数传递给例程并返回你想要的位置。
这将使例程可以重用,您也可以在以后使用它。并且可以通过tMap调用例程。