gpt4 book ai didi

java - 使用java处理大型CSV文件的有效方法

转载 作者:行者123 更新时间:2023-11-30 05:43:39 25 4
gpt4 key购买 nike

让我们考虑一个场景

  1. 帐户.csv
  2. 交易.csv

我们有每个帐号到交易详细信息的映射,因此 1 个帐号可以有多个交易。使用这些详细信息,我们必须为每个帐户生成 PDF

如果假设交易 CSV 文件非常大(>1 GB),那么加载所有详细信息并解析可能是内存问题。那么解析交易文件的最佳方法是什么?逐 block 读取也会导致内存消耗。请指教

最佳答案

正如其他人所说,数据库将是一个很好的解决方案。

或者,您可以对帐号上的 2 个文件进行排序。大多数操作系统提供高效的文件排序程序,例如对于 Linux(在第 5 列排序)

LC_ALL=C sort -t, -k5 file.csv > sorted.csv

取自Sorting csv file by 5th column using bash

然后您可以依次读取这 2 个文件

您的编程逻辑是:

if (Accounts.accountNumber < Transaction.accountNumber) {
read Accounts file
} else if (Accounts.accountNumber = Transaction.accountNumber) {
process transaction
read Transaction file
} else {
read Transaction file
}

内存要求很小,您只需在内存中保存每个文件的一条记录

关于java - 使用java处理大型CSV文件的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55216393/

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