gpt4 book ai didi

java - Spring Batch 比较两个文件并找到匹配的记录

转载 作者:太空宇宙 更新时间:2023-11-04 14:09:29 26 4
gpt4 key购买 nike

我们是否可以根据任何特定列比较两个不同的文件,并使用 Spring Batch 从一个文件中获取值。

例如:

文件 1 内容:

FirstName, LastName, Age

文件 2 内容:

FirstName, LastName, Business

我的要求是基于名字和姓氏,我需要获取业务字段。基本上我将迭代文件 1 并在文件 2 中搜索以检查匹配的记录。

目前我正在做的是使用 Apache Lucene 索引文件 2 并使用 Spring Batch 迭代文件 1 并在 Lucene 索引中搜索以获取匹配的文档。

我正在使用 Spring Batch 或任何其他框架寻找类似的功能?

问候,香卡

最佳答案

如果你想走排序输入文件的路线,这样的事情应该可以工作:

public class MergingItemReader implements ItemStreamReader<MergedRecord> {

private ItemStreamReader<RecordTypeA> readerA;
private ItemStreamReader<RecordTypeB> readerB;

@Override
public MergedRecord read() throws Exception {
RecordTypeA itemA = readerA.read();
RecordTypeB itemB = readerB.read();
Assert.isTrue(itemA.getKey().equals(itemB.getKey()), "Inconsistent data");
return new MergedRecord(itemA, itemB);
}

@Override
public void open(ExecutionContext executionContext) throws ItemStreamException {
readerA.open(executionContext);
readerB.open(executionContext);
}

@Override
public void update(ExecutionContext executionContext) throws ItemStreamException {
readerA.update(executionContext);
readerB.update(executionContext);
}

@Override
public void close() throws ItemStreamException {
readerA.close();
readerB.close();
}

public void setReaderA(ItemStreamReader<RecordTypeA> readerA) {
this.readerA = readerA;
}

public void setReaderB(ItemStreamReader<RecordTypeB> readerB) {
this.readerB = readerB;
}

}

关于您关于CompositeItemReader的其他问题:没有这样的事情。也许您将它与 CompositeItemWriter 混淆了。

关于java - Spring Batch 比较两个文件并找到匹配的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28502712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com