小编Uma*_*qui的帖子

如何在kiba etl脚本(kiba gem)中进行聚合转换?

我想写一个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实现这种行为,
谢谢你提前

ruby etl kiba-etl

7
推荐指数
1
解决办法
1099
查看次数

标签 统计

etl ×1

kiba-etl ×1

ruby ×1