我目前正在从事一个涉及 Twitter 数据的第三年项目。该部门为我提供了价值一个月的 Twitter 的 .lzo。最小的是 4.9gb,解压后是 29gb,所以我正在尝试打开文件并阅读。这是可能的还是我需要以这种方式解压缩和处理数据?
编辑:已尝试逐行读取并解压缩读取的行
更新:找到了一个解决方案 - 阅读 lzop -dc 的 STDOUT 就像一个魅力
如何使用 switch 在子进程中启动lzop
二进制文件-c
,然后逐行读取其 STDOUT ?
我只知道一个用于 LZO 的 Python 库——https: //github.com/jd-boyd/python-lzo,它需要完全解压缩(此外——它解压缩内存中的内容)。
所以我认为你需要在使用它们之前解压缩文件。
我知道这是一个非常古老的问题,答案非常好。我遇到了一个类似的问题,谷歌把我带到了这里。
我只是写下我对 lzo 压缩和 lzop 程序的经验。希望我能帮助像我这样的人遇到同样的问题。我写了一个简单的python模块来处理lzo文件,你可以在https://github.com/ir193/python-lzo/上找到它
关于问题,可以通过一次读取一个块来完成就地读取lzo压缩文件(无需解压缩整个文件)。lzo 文件被分成若干块,块的最大大小约为若干 MB。在我的模块中,您可以只使用 read(4096) 左右。
实际上 *.lzo 是由 lzop 创建的,与另一个答案(https://github.com/jd-boyd/python-lzo)提供的 python-lzo 几乎没有关系。该模块用于压缩/解压缩字符串,不处理 lzop 文件头和校验和。如果您想打开一些现有的 lzo 文件,请不要使用它。