本文介绍如何使用 Talend tMap 执行类型转换或更改数据类型。我们可以使用 Talend tMap 作为 tConvertType 的替代方案,根据需求更改列的数据类型。在实际操作中,我们大部分时间获取的是字符串格式的数据,所以我们需要将其更改为整数、双精度、日期等。
为了演示 Talend tMap 类型转换,我们使用了在tConvertType 示例中使用的 Customer_text 文本文件。因此,我将使用 tFileInputDelimited 并从文件系统中选择文本文件。
点击“编辑模式”按钮添加所有具有数据类型的列。或者,如果您已有现有元数据,请使用它。无论如何,您会看到所有列都是字符串类型。

拖放Talend tMap,并将 tFileInputDelimited 的主行连接到 tMap。

双击 tMap 打开下面的窗口。请点击 + 按钮添加新的输出。我将添加从 row1 到 Type_Conversion_Out(我们为此输出指定的名称)的所有列。

我们的场景是有一个预定义的表来存储这些记录。表中有整数类型的 EmpID、双精度类型的 Income、浮点类型的 Sales 和日期格式的 HireDate。因此,为了满足要求,我们更改了上述列的数据类型。

我将运行这个 Talend tMap 类型转换作业,看看会发生什么。

从上面的 tMap 图像中可以看到,它正在抛出错误(类型不匹配)。
Talend tMap 类型转换步骤
请点击 EmpID 旁边的浏览按钮,这将打开表达式构建器来编写表达式。请使用此表达式构建器或执行类型转换。

对于此列,我们需要将字符串类型更改为整数。所以,我们使用 parseInt 方法。如果您发现编写函数有困难,请按 Ctrl + 空格键查看可能性。或者,在“类别”下可以找到所有内置函数。

点击 OK 按钮关闭窗口。

类似地,我们使用 parseDouble 将字符串转换为双精度,使用 parseFloat 将字符串转换为浮点数,使用 parseDate 将字符串值转换为日期。请记住,对于 parseDate,请确保列的模式与日期格式匹配。

为了节省时间,我们使用了 tLogRow 来显示结果。从下图可以看到 Talend tMap 类型转换的结果。
