我有一个像
这样的csv文件day,cost
20140101, 20
2014-01-5, 20
20140101, ab
所以有一些无效数据,我想将有效数据加载到table_normal,并将无效数据加载到table_unnormal 所以最终的数据应该是 for table_normal
day,cost
20140101, 20
表table_unnormal
day,cost, reason
2014-01-5, 20, 'invalid day'
20140101, ab,'invalid cost'
我知道如何在处理器中找到原因,但是如何将作业写入不同的表?
答案 0 :(得分:0)
我可以建议3种方法来做到这一点,其中没有一种是非常直接和容易的。
a)编写自己的CustomJDBCItemWriter - 你可以过滤掉你想要的任何方式,你应该能够在table table_normal中写一些记录,在table_unnormal中写一些记录
b)使用CompositeItemWriter - 两个编写器将从处理器获得“完整记录列表”。然后,您可以过滤掉每个作者所需的记录。与(a)
非常相似c)如果您可以对输入进行2次传递 - 您可以分两步编写工作。 第1步:读取记录 - >仅处理不良记录 - >写入table_unnormal 第2步:读取记录 - >处理好记录 - >写入table_normal
没有一个好的内置功能可以直接在春季批处理中处理这种情况(至少没有我知道的)