使用 PDI 将逗号分隔的 string/list 转换为 table/Matrix 格式
Convert comma separated string/list into table/Matrix format using PDI
使用 Pentaho 数据集成 (Kettle),我从文本文件中读取了一个长字符串:
a, 1, 2, b, 3, 4, c, 5, 6, ...
是否有任何PDI/Kettle步骤或方法将此字符串拆分为如下所示的n列table格式(列名可以自由定义):
column1
column2
column3
a
1
2
b
3
4
c
5
6
以上只是一个简单的例子,我的真实情况是分隔符不同,列号(n)更大。但我只想先解决主要问题。
我不明白“不同的分隔符”。如果同一行有不同的分隔符,例如逗号和分号,那么这对 PDI 过程来说是一项棘手的任务。然后,您需要先将所有定界符转换为同一类型。比如在Notepad++中,进行替换。 Notepad ++ 可以很好地处理大型 CSV 文件。
在 PDI 中还有一个标准分隔符组件“Split Fields”。
我已经为你准备了SOLUTION。在我的解决方案中,我设置了 N=3,但你可以设置任意多个。此外,如果要设置 N =3/4/5/N,则需要在 'Row denormaliser' 步骤中输入列名。
尽管如此,您可以使用 'Meta Data Injection' 步骤轻松设置动态列名(如果需要)。
使用 Pentaho 数据集成 (Kettle),我从文本文件中读取了一个长字符串:
a, 1, 2, b, 3, 4, c, 5, 6, ...
是否有任何PDI/Kettle步骤或方法将此字符串拆分为如下所示的n列table格式(列名可以自由定义):
column1 | column2 | column3 |
---|---|---|
a | 1 | 2 |
b | 3 | 4 |
c | 5 | 6 |
以上只是一个简单的例子,我的真实情况是分隔符不同,列号(n)更大。但我只想先解决主要问题。
我不明白“不同的分隔符”。如果同一行有不同的分隔符,例如逗号和分号,那么这对 PDI 过程来说是一项棘手的任务。然后,您需要先将所有定界符转换为同一类型。比如在Notepad++中,进行替换。 Notepad ++ 可以很好地处理大型 CSV 文件。
在 PDI 中还有一个标准分隔符组件“Split Fields”。
我已经为你准备了SOLUTION。在我的解决方案中,我设置了 N=3,但你可以设置任意多个。此外,如果要设置 N =3/4/5/N,则需要在 'Row denormaliser' 步骤中输入列名。
尽管如此,您可以使用 'Meta Data Injection' 步骤轻松设置动态列名(如果需要)。