问题1:启动出现的问题 问题2:pyspark启动后tab键无法补全问题
问题1:启动出现的问题
现象1:
/usr/local/spark-2.3.3/bin/pyspark: 行 45: python:未找到命令 env: “python”: 没有那个文件或目录
现象2:
Python 3.8.10 (default, Sep 28 2021, 16:10:42) [GCC 9.3.0] on linux Type “help”, “copyright”, “credits” or “license” for more information. Traceback (most recent call last): File “/usr/local/spark-2.3.0/python/pyspark/shell.py”, line 31, in from pyspark import SparkConf File “/usr/local/spark-2.3.0/python/pyspark/init.py”, line 46, in from pyspark.context import SparkContext File “/usr/local/spark-2.3.0/python/pyspark/context.py”, line 31, in from pyspark import accumulators File “/usr/local/spark-2.3.0/python/pyspark/accumulators.py”, line 97, in from pyspark.cloudpickle import CloudPickler File “/usr/local/spark-2.3.0/python/pyspark/cloudpickle.py”, line 146, in _cell_set_template_code = _make_cell_set_template_code() File “/usr/local/spark-2.3.0/python/pyspark/cloudpickle.py”, line 127, in _make_cell_set_template_code return types.CodeType( TypeError: an integer is required (got type bytes)
原因:
spark版本与python版本不兼容:
解决办法:
-
创建python组,将python3.8和python2.7加入候选项 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
-
列出python组中的所有候选项。 sudo update-alternatives --config python
要维持当前值[*]请按<回车键>,或者键入选择的编号:1
-
更新源、 更新已安装的包 sudo apt-get update
sudo apt-get upgrade
注意:在进行upgrade操作时如果更新速度特别慢,不要犹豫换镜像源,更改方法参考下面这篇博文:ubuntu更改镜像源(软件源) -
启动pyspark查看是否有spark的图标 pyspark
-----------------------------------------------------手动分界线-----------------------------------------------------------------
如果未出现spark的图标继续向下操作
进入pyspark所在的目录,修改pyspark所依赖的python版本。
cd /usr/local/spark-2.3.0/bin
sudo vi pyspark
修改图中所示内容(注意要对应自己的python版本,我的python为2.7,我就改为python2.7)保存退出。
source ./pyspark
启动后出现spark的图标,搞定!!!
问题2:使用pyspark时,发现tab键无法补全
原因:python2未提供tab键补全功能
解决办法:
在python用户扩展包中新建一个文件tab.py 。
sudo vi /usr/lib/python2.7/dist-packages/tab.py
内容如下:
try:
import readline
except ImportError:
print("Module readline not available.")
else:
import rlcompleter
readline.parse_and_bind("tab: complete")
保存退出后追加环境变量。
echo "PYTHONSTARTUP=/usr/lib/python2.7/dist-packages/tab.py" >> ~/.bashrc
更新一下环境变量:
source ~/.bashrc
再次输入pyspark进行测试会发现Tab键补全功能又能使用了,真香!!!
参考内容:
Linux下切换python2和python3
python终端下添加Tab键补全功能
|