我想写一个Kiba Etl脚本,它有一个从CSV到目标CSV的源,带有一个转换规则列表,其中第二个转换器是一个聚合,其中的操作如选择名称,sum(euro)group by name
Kiba ETL脚本文件
source CsvSource, 'users.csv', col_sep: ';', headers: true, header_converters: :symbol
transform VerifyFieldsPresence, [:name, :euro]
transform AggregateFields, { sum: :euro, group_by: :name}
transform RenameField,from: :euro, to: :total_amount
destination CsvDestination, 'result.csv', [:name, :total_amount]
Run Code Online (Sandbox Code Playgroud)
users.csv
date;euro;name
7/3/2015;10;Jack
7/3/2015;85;Jill
8/3/2015;6;Jack
8/3/2015;12;Jill
9/3/2015;99;Mack
Run Code Online (Sandbox Code Playgroud)
result.csv(预期结果)
total_amount;name
16;Jack
97;Jill
99;Mack
Run Code Online (Sandbox Code Playgroud)
由于etl变换器一次在一行上一个接一个地执行,但我的第二个变换器行为依赖于我无法在传递给transform方法的类中访问它的整个行集合.
transform AggregateFields, { sum: :euro, group_by: :name }
Run Code Online (Sandbox Code Playgroud)
有没有可能使用kiba gem实现这种行为,
谢谢你提前