gpt4 book ai didi

java - 将CSV文件解析为来自java中非常大的源的数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:08 25 4
gpt4 key购买 nike

我有一个解析器,可以很好地处理大约 . 60000 行或更少,但我必须解析一个超过 1000 万行的 CSV 文件,这种方法不起作用它每 10 万行挂起 10 秒,我假设它是拆分方法,有没有更快的方法来解析数据从 CSV 到字符串数组?

有问题的代码:

    String[][] events = new String[rows][columns];
Scanner sc = new Scanner(csvFileName);

int j = 0;
while (sc.hasNext()){
events[j] = sc.nextLine().split(",");
j++;
}

最佳答案

您的代码无法可靠地解析 CSV 文件。如果您在值中有 ',' 或行分隔符怎么办?这也很慢。

获取uniVocity-parsers解析你的文件。它比 Apache Commons CSV 快 3 倍,具有更多功能,我们用它来处理具有数十亿行的文件。

将所有行解析为字符串列表:

CsvParserSettings settings = new CsvParserSettings(); //lots of options here, check the documentation

CsvParser parser = new CsvParser(settings);

List<String[]> allRows = parser.parseAll(new FileReader(new File("path/to/input.csv")));

披露:我是这个图书馆的作者。它是开源且免费的(Apache V2.0 许可)。

关于java - 将CSV文件解析为来自java中非常大的源的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30827131/

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