talend - 比较 2 个文件并保留两个文件不共同的条目

标签 talend

我有一个 CSV 文件和一个数据库表作为输入。我需要保留数据库表中的所有记录,但排除 CSV 文件中的记录。最终所有内容都会写入 CSV 文件。

我的所有尝试都导致了数百个重复,因此我在这里面临很大的挑战。

最佳答案

这是一个快速而肮脏的技巧,但它应该适合您的需求。

将您的数据库和 CVS 输入连接到 TMap - 使用您的数据库作为主连接,使用 CSV 作为查找。像这样的东西:

tMySqlInput---->Main--->tMap---out---->tFileDelimitedOutput
                         ^
                         |
                         |
                       Lookup
                         |
                         |
                  tFileDelimitedInput

在 tMap 内,照常映射连接列。单击查找映射区域上方的 Spanner ,并将连接类型设置为内连接。确保“匹配模型”未设置为全部,以避免交叉连接。然后,创建“out”输出连接。最后,单击此连接的 Spanner ,并将“Catch Lookup Inner Join Reject”设置为true

在“out”(即输出文件)上,您将仅获得数据库中不匹配的行。根据您的数据,您可能需要在 tFileDelimitedOutput 之前添加 tAggregateRow 以最终清除重复项。

关于talend - 比较 2 个文件并保留两个文件不共同的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22227687/

相关文章:

java - 如何异步调用子作业

java - 命名 Talend 自定义组件 - 除 tTutorialRow 外不工作

tomcat webapp 文件夹名称已更改

mysql - Talend Open Studio for BigData(5.6.2) 的 tSqoopImport 组件在连接到 MapR 集群上的 MySQL 数据库时抛出错误

mysql - 在 MySQL/Talend 中插入缺失周末数据的虚拟记录

parsing - Talend - 合并定界文件的两行以获得一个寄存器

linux - 如何以静默模式(无人值守模式)安装talend?

java - Talend - 将 'NULL' 插入类型为 'NUMBER' 的数据库列

java - 将 Talend Expression 解码为 Java 公式

java - tOracleOutput 组件中的 Talend ETL 作业错误