gpt4 book ai didi

merge - Rhino.ETL - 联合操作

转载 作者:行者123 更新时间:2023-12-04 05:20:52 24 4
gpt4 key购买 nike

我有一个 excel 工作簿,其中包含多个具有相同数据模式的工作表。我有从单个工作表加载数据的工作实现。

有没有办法使用 JoinOperation 或任何此类操作将相似的记录(模式)合并到单个集合(行)中?

我的理解是 JoinOperation 可用于左、右、外和内连接,但不能用于联合,因为 MergeRows 的返回类型是 Row。

提前致谢。

最佳答案

您可以实现 AbstractOperation像这样组合多个输入操作:

public class UnionAllOperation : AbstractOperation     {
private readonly List<IOperation> _operations = new List<IOperation>();

public override IEnumerable<Row> Execute(IEnumerable<Row> rows)
{
foreach (var operation in _operations)
foreach (var row in operation.Execute(null))
yield return row;
}

public UnionAllOperation Add(IOperation operation) {
_operations.Add(operation);
return this;
}
}

更新 : 引用 here 上的并行版本.

在这样的过程中使用它:
public class Process : EtlProcess {
protected override void Initialize() {

Register(
new UnionAllOperation()
.Add(new ExtractFromExcel("WorkBook1.xls"))
.Add(new ExtractFromExcel("WorkBook2.xls"))
);
}
}

这将执行联合所有操作。如果你需要一个返回不同行的联合,实现一个 AbstractAggregationOperation , 并对所有列进行分组。

关于merge - Rhino.ETL - 联合操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709750/

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