在Python编译的时候加入bz2
当使用Spark + Python的时候,python代码会有 import bz2,此时有可能会有 No module named bz2 的错误。
这个错误的原因是:Spark 使用python的时候,需要将整个Python目录压缩成zip后,上传到hdfs中,这样需要通过编译生成一个新的Python(不干扰原linux已有的),默认是没有bz2的,而bz2是系统级的模块,因此系统中经常已经有这个模块了,对于系统默认的python是有效的,但是对于Spark使用的Python.zip 是没有的。这时就需要在编译时将bz2加入。
加入方法:
- dpkg -L libbz2-1.0 # 找到系统文件的位置
- 将所有的 libbz2.so* 的文件,复制到 python原文件目录的Lib中
- 然后重新编译Python。
./configure --prefix="${PYTHON_ROOT}" --enable-unicode=ucs4
make
make install
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
