进入pyspark
输入from pyspark.mllib.recommendation import Rating
报错 no module named numpy
我的环境:centos6.5 , python2.6
显然是我的虚拟机系统里自带的python2没有numpy这个包,而平常在windows下都是通过pip install numpy
,虚拟机也没有pip
,同时因为国外的服务器,pip下载的速度很慢,所以只能通过源码安装。
下面就是通过源码安装numpy
的详细步骤:
因为我总感觉虚拟机里有些下载很慢,所以我是下载到windows和虚拟机的共享文件夹下,复制到linux系统的目录里。如果你的环境下载速度快,可以直接在linux终端进入一个目录,
wegt https://files.pythonhosted.org/packages/8b/62/baf1e2c2b02de7898dcacd1d1a41e323b79d25be5c88d2805c89fb424835/setuptools-0.6c11.tar.gz
,通过这种方式下载(后面的网址是你要下载的文件的连接)。
首先打开终端,输入su
,然后你的密码
进入超级用户。
1 安装setup
- 下载 setuptools 的tar.gz 文件,地址是https://pypi.org/project/setuptools/#history,进去找到你要下载的版本。
- 在linux终端下切换到一个目录下
cd /home/badou/Documents
,然后输入cp /mnt/hgfs/'共享文件夹的名称'/setuptools-0.6c11.tar.gz /home/badou/Documents
把文件复制过来.注意:共享文件夹在linux中的路径是/mnt/hgfs/共享文件夹名称
。
3.终端输入tar vxf setuptools-0.6c11.tar.gz
解压缩,然后cd setuptools-0.6c11
进入到解压后的文件夹,然后python setup.py install
.
2 安装numpy
首先要安装相关工具(这一步的下载速度很快,总共也就几MB)。
在终端中一次输入下面几行命令,每一行等待几秒都需要再输入y
确认:
yum install wget
yum install unzip
yum install gcc
yum install python-devel
- 打开这个网址https://sourceforge.net/projects/numpy/files/NumPy/1.9.0/numpy-1.9.0.zip,下载到共享文件夹中.
- 在linux终端下切换到一个目录下
cd /home/badou/Documents
,然后输入cp /mnt/hgfs/'共享文件夹的名称'/numpy-1.9.0.zip /home/badou/Documents
把文件复制过来. - 终端输入
unzip numpy-1.9.0.zip
解压缩文件,然后cd numpy-1.9.0
进入到解压后的文件夹,然后python setup.py install
,输入这行命令后终端会显示很长一段时间的安装过程,耐心等待就行。 - 在终端输入
cd ..
返回上一级目录,一定不要在解压的numpy目录里面进入python。输入python
进入python命令行,import numpy as np
如果没报错就是成功了。
3 安装完遇到的问题
安装完后这个时候我回到pyspark的交互界面,读取本地文件rawUserData = sc.textFile("file:/home/badou/Downloads/u.data")
,报错sc is not defined
,网上查了原因,sc是由python产生的,它没有被定义是因为python正在被别的kernel占用,需要重启spark,即cd /usr/local/src/spark/sbin
,./stop-all.sh
,然后重新启动./start-all.sh
,转入spark/bin
下启动pyspark,报错pyspark.sql.utils.IllegalArgumentException: u"Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState':"
之前明明是好的,所以又重启了hadoop,还是报错,最后重启了虚拟机,正常运行。