你能告诉我zip lib巫婆支持zib和bzip2算法
我的要求:
谢谢大家.
我用BZ2压缩器对象编写了一些代码来bz2压缩文件:
def compressFile(file_name, new_name):
comp = bz2.BZ2Compressor()
comFile = open(new_name, "wb")
oldFile = open(file_name, "rb")
while True:
data = oldFile.read(1024*1024)
if(len(data) == 0):
break
compressed = comp.compress(data)
comFile.write(compressed)
comp.flush()
comFile.close()
Run Code Online (Sandbox Code Playgroud)
我没有收到错误并且文件已创建,但是当我想用存档管理器打开它时,我得到一个非特定的错误.我找不到我的错误,这个模块记录不完整.
我正在尝试在python中使用bz2and / or lzma包。我正在尝试以csv格式压缩数据库转储,然后将其放入zip文件中。我将其与两个软件包一起进行一次压缩。
其代码如下所示:
with ZipFile('something.zip', 'w') as zf:
content = bz2.compress(bytes(csv_string, 'UTF-8')) # also with lzma
zf.writestr(
'something.csv' + '.bz2',
content,
compress_type=ZIP_DEFLATED
)
Run Code Online (Sandbox Code Playgroud)
当我尝试使用增量压缩时,它将创建一个.zip文件,当我尝试提取该文件时,它会递归地提供一些存档文件。
其代码如下所示:
with ZipFile('something.zip', 'w') as zf:
compressor = bz2.BZ2Compressor()
content = compressor.compress(bytes(csv_string, 'UTF-8')) # also with lzma
zf.writestr(
'something.csv' + '.bz2',
content,
compress_type=ZIP_DEFLATED
)
compressor.flush()
Run Code Online (Sandbox Code Playgroud)
我浏览了文档,还寻找有关压缩技术的信息,似乎没有关于单次压缩和增量压缩的全面信息。
我对大数据世界中可拆分和不可拆分的文件格式的理解感到困惑。我使用的是 zip 文件格式,并且我知道 zip 文件是不可拆分的,因此当我处理该文件时,我必须使用ZipFileInputFormat基本上解压缩然后处理它的方式。
然后我转向gzip格式化,我能够在我的 Spark 工作中处理它,但我总是怀疑为什么人们说gzip文件格式也不能拆分?
它将如何影响我的火花工作表现?
因此,例如,如果有 5k 个不同大小的 gzip 文件,其中一些是 1 kb,其中一些是 10gb,如果我要在 spark 中加载它会发生什么?
我应该在我的情况下使用 gzip 还是任何其他压缩?如果是,那为什么?
还有性能上有什么不同
案例1:如果我有一个非常大(10gb)的gzip文件,然后我将它加载到spark中并运行计数
案例2:如果我有一些可拆分(bzip2)相同大小的文件,然后将其加载到 spark 中并运行计数
我正在尝试构建 python3 的本地版本(特别是 python3.7,但与 3.6.6 相同的问题),但是在链接到某些 C 库和/或头文件时遇到了问题(至少这是我认为的问题)是)。
我能够构建 python3.7,但遇到 bzip2 的问题(但我怀疑还会有其他我不知道的系统库)。这在尝试导入需要它作为导入错误的各种包/模块时表现出来:
ModuleNotFoundError: No module named '_bz2'
Run Code Online (Sandbox Code Playgroud)
从这个stackoverflow question - Ask Question - 看来我已经构建了没有正确bz2标头的python。python 构建本身不会失败。
具体问题是如何用bz2搭建本地版本的python?更一般地,问题是如何正确链接到系统库?(因为可能还有其他人我没有遇到错误)
就我所尝试的而言 - 我发现了这个(陈旧的)问题 - 你如何将 bz2 分配给 python 的 altinstall?和这个最近的问题Compiling bz2 support in python2并尝试了一些基于这些的东西。
我遇到的第一个问题实际上是找到正确的库等进行链接(上述问题中的解决方案建议设置CFLAGS="-I/path/to/bz2/include"和LDFLAGS="-L/path/to/bz2/lib")。大概这些在我的系统上的某个地方(ubuntu 16.04),因为系统安装的 python2.7 和 python3.5 与 bzip2 没有问题。
我发现libbz2.so.1(和其他一些)/lib/x86_64-linux-gnu/- 但文件夹似乎没有遵循上面示例/答案的模式。因此,我构建了一个新的本地版本的 bz2(在.bzp我的本地文件夹中),然后在尝试构建 python3.7 时尝试链接到该版本,使用以下命令:
./configure --prefix=/home/user/.localpython CFLAGS="-I/home/user/.bz2/include" LDFLAGS="-L/home/user/.bz2/lib"
Run Code Online (Sandbox Code Playgroud)
我还尝试了一个更通用的配置(它松散地基于Compile Python with bz2 support,链接到上面的第二篇文章中。)
./configure --prefix=/home/user/.python CFLAGS="-I/usr/local/include" …Run Code Online (Sandbox Code Playgroud) 我想构建一个可以处理 fastq.gz 和 fastq.bz2 文件的小辅助函数。
我想将 zcat 和 bzcat 合并为一个透明函数,该函数可用于两种文件:
zbzcat example.fastq.gz
zbzcat example.fastq.bz2
zbzcat() {
file=`echo $1 | `
## Not working
ext=${file##*/};
if [ ext == "fastq.gz" ]; then
exec gzip -cd "$@"
else
exec bzip -cd "$@"
fi
}
Run Code Online (Sandbox Code Playgroud)
扩展提取工作不正常。您知道其他解决方案吗
我有一个需要 bzip2 支持的应用程序。我已经安装了该库,但我不知道如何启用它。默认情况下,它在 PHP 中是禁用的。
我已经在互联网上搜索了一整天,但我无法让它工作。我在 Debian 8 (Jeezy) 和 PHP 7 上运行。感谢任何帮助!
bzip2 ×7
python ×3
zip ×3
python-3.x ×2
.net ×1
apache-spark ×1
bash ×1
c# ×1
cflags ×1
compression ×1
fastq ×1
gzip ×1
hadoop ×1
hadoop-lzo ×1
ldflags ×1
linux ×1
lzma ×1
mono ×1
php ×1