并行处理大 csv 文件

某 csv 文件存储大量订单。

OrderID,Client,SellerID,Amount,OrderDate

1,SPLI,219,9173,01/17/2022

2,HU,110,6192,10/01/2020

3,SPL,173,5659,04/23/2020

4,OFS,7,3811,02/05/2023

5,ARO,146,3752,08/27/2021

6,SRR,449,10752,05/27/2022

7,SJCH,326,11719,01/18/2022

8,JDR,3,11828,12/09/2021

要求用 Java 并行处理该文件,选出金额介于 3000 至 5000 美元的订单,按客户分组,统计订单金额和订单数量。

Clientamtcnt
ARO119483822972
BDR117208482933
BON118649522960
BSF119477342980
CHO118064012968
CHOP115112012877
D114914522876
DSG116721142910
DSGC116564792918

编写SPL语句

=file("d:/OrdersBig.csv").cursor@mtc(;8).select(Amount>=3000 && Amount<5000).groups(Client;sum(Amount):amt,count(1):cnt)

函数cursor用来解析超出内存的大文件,默认单线程,@m表示多线程并行读取,后面的8是并行数,@t表示首行是表头,@c表示分隔符是逗号。

Java 集成 SPL 可参考 Java 如何调用 SPL 脚本

SPL开源地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值