Parsing 在CSV文本输入中将货币解析为数字

Parsing 在CSV文本输入中将货币解析为数字,parsing,etl,pentaho,kettle,Parsing,Etl,Pentaho,Kettle,这看起来应该很简单 我有一个具有多个货币值的CSV文件(因此,如果可以避免的话,我希望避免编写一堆字符串操作步骤),我很高兴看到CSV文件输入步骤有货币分隔符、十进制符号、分组符号等字段(我的字段分别是默认的“$”、“、”) 本文件描述了以下内容: 用于解释数字的货币,如$10000.00或E5.000,00 小数点小数点可以是“.”(10;000.00)或“,”(5.000,00) 分组分组可以是点“,”(10;000.00)或“.”(5.000,00) () 但从当前的生产版本(4.4)

这看起来应该很简单

我有一个具有多个货币值的CSV文件(因此,如果可以避免的话,我希望避免编写一堆字符串操作步骤),我很高兴看到CSV文件输入步骤有货币分隔符、十进制符号、分组符号等字段(我的字段分别是默认的“$”、“、”)

本文件描述了以下内容:

  • 用于解释数字的货币,如$10000.00或E5.000,00
  • 小数点小数点可以是“.”(10;000.00)或“,”(5.000,00)
  • 分组分组可以是点“,”(10;000.00)或“.”(5.000,00)
()

但从当前的生产版本(4.4)开始。。。这些设置似乎没有效果


是否有人成功地使用了数字掩码或类似的方法,使得“$10000238.48”这样的字符串可以生成一个可以推送到数据库中的数字?我所做的任何事情要么是文本输入中的“不可解析”,要么是插入时的“截断字段”错误…

当我在文本输入步骤中使用示例数字获取字段时,它会将货币、小数和组分别设置为“$”、“.”、“,”,并且可以很好地读取您的数字。它还将格式字符串设置为“$”、##0.00;($#,###0.00)”,这似乎是关键。文本文件输入步骤将检查CSV中指定的行数,并猜测每列的格式

以下是PDI的编号格式表:

如果在同一列中混合了不同的货币格式,我将使用UDJE步骤和以下答案:

或者JavaScript步骤和以下答案:

要去除所有非数字和非小数点字符,请通过“选择值”步骤。注意,如果在输入列中有混合的十进制分隔符,这将非常棘手