Dask是否能够以块的形式读取压缩文件?
我在阅读.xz文件时收到this notebook中的一些错误,
import dask.bag as db
bag = db.read_text('data/1-input/RC_2018-09.xz', blocksize=100e6).map(json.loads)
ValueError:无法推断使用compression ='xz'压缩的文件的逻辑大小
ValueError:无法对使用compression ='xz'压缩的文件进行分块读取。要读取,请设置blocksize = None
明确设置compression='xz'
也会导致错误。
深入挖掘,我看到有关compression.py中xz文件的一些行被注释掉了,所以我想知道这是否已被禁用。
根据xz specs,它确实支持随机访问读取到有限的块大小。
这对我来说并不重要 - 我总是可以解压缩然后运行Dask - 它只会节省一些磁盘空间。
谢谢!
XZ确实支持压缩,但在实践中它非常罕见。维护它的成本最终高于使用它,因此维护人员停止维护此功能。如果您有兴趣购买维护,那么这将是受欢迎的,并且可以再次添加它。