我目前正在从Twitter收集数据的三年级项目中工作。部门提供了一个月的Twitter数据,格式为.lzo。最小的文件大小为4.9GB,解压后为29GB,所以我正在尝试边读取文件边解压缩。这样做可能吗?或者我需要先解压再处理数据?
编辑:尝试逐行读取并解压读取的行。
更新:找到了一个解决方案——读取lzop -dc的标准输出非常好用。
编辑:尝试逐行读取并解压读取的行。
更新:找到了一个解决方案——读取lzop -dc的标准输出非常好用。
我知道这是一个非常老的问题,答案非常好。我遇到了类似的问题,谷歌把我带到了这里。
我只是记录了一下我的lzo压缩和lzop程序的经验。希望我能帮助像我一样遇到同样问题的人。我编写了一个简单的Python模块来处理lzo文件,你可以在https://github.com/ir193/python-lzo/上找到它。
关于问题,可以通过一次读取一个块来在原地读取lzo压缩文件(而不是解压整个文件)。lzo文件被分成几个块,每个块的最大大小约为几MB。在我的模块中,你只需要使用read(4096)或类似的方法。
实际上,*.lzo是由lzop创建的,并且与另一个答案提供的python-lzo(https://github.com/jd-boyd/python-lzo)几乎没有关系。该模块用于压缩/解压缩字符串,而不是处理lzop文件头和校验和。如果你想打开一些现有的lzo文件,请不要使用它。