gpt4 book ai didi

Scala:逐行读取一个巨大的压缩文本文件而不加载到内存中

转载 作者:行者123 更新时间:2023-12-03 20:22:52 25 4
gpt4 key购买 nike

我有一个大小为 100-200 GB 的文本文件。所以我希望以压缩格式(如zip)存储。但是,由于它的大小,我需要一次处理一行。尽管使用 io.Source.fromFile(fileName).getLines 一次读取一行文本文件很简单。 ,但这仅适用于解压缩文件。
有没有一些有效的方法来逐行读取 Scala 中的压缩文件?我找不到任何示例,但我看到的更接近的实现是 here但它将文件加载到内存中。与通常提供的使用 zip 存档的示例不同,我只需要处理一个压缩的文本文件。我将不胜感激任何指示或线索。

最佳答案

如果文件是 Gzip 压缩的,java 的 GzipInputStream为您提供流媒体访问:

   val lines: Iterator[String] = Source
.fromInputStream(new GzipInputStream(new FileInputStream("foo.gz")))
.getLines
如果它是您的问题所暗示的 zip 存档,那就更复杂了。 Zip 文件更像是文件夹而不是单个文件。您必须先阅读目录,然后浏览条目以找到您想要阅读的条目(或阅读所有条目)。类似 this

关于Scala:逐行读取一个巨大的压缩文本文件而不加载到内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67679005/

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