seq 1 1000000 > testfile
bzip2 -kz9 testfile
mv testfile.bz2 testfile-bzip2.bz2
pbzip2 -kzb9 testfile
mv testfile.bz2 testfile-pbzip2.bz2
gsutil cp testfile gs://[bucket]
gsutil cp testfile-bzip2.bz2 gs://[bucket]
gsutil cp testfile-pbzip2.bz2 gs://[bucket]
然后我在两个压缩文件上运行以下管道。
p.apply(TextIO.read().from(filePath).withCompressionType(TextIO.CompressionType.BZIP2))
.apply(TextIO.
write().
to(filePath.substring(0, filePath.length() - 4)).
withoutSharding());
这导致了我的存储桶的以下状态:
正如您所看到的,pbzip2压缩的未压缩文件太小而无法正确解压缩。似乎只有第一个块未经压缩而其余部分被丢弃。
pbzip2版本:
Parallel BZIP2 v1.1.12 [2014年12月21日]
bzip2版本:
bzip2,一个块排序文件压缩器。版本1.0.6,2010年9月6日。
我使用的是2.0.0版的数据流SDK。
我有很多用pbzip2压缩的文件,我宁愿不改变它们的压缩方式。
有关如何解决此问题的任何建议? 这甚至假设使用压缩了pbzip2的文件吗?