博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PySpark in PyCharm on a remote server
阅读量:4202 次
发布时间:2019-05-26

本文共 2298 字,大约阅读时间需要 7 分钟。

流程

一、虚拟机中共享本地目录,见前文:《》

二、python安装或相关问题见《》

三、当然,spark是必须的,见《》(用到hadoop,见《》)

四、remote端安装、设置

vi /etc/profile

添加一行:PYTHONPATH=$SPARK_HOME/python/:$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip
source /etc/profile

# 安装pip 和 py4j

下载pip-7.1.2.tar

tar -xvf pip-7.1.2.tar
cd pip-7.1.2
python setup.py install
pip install py4j

# 避免ssh时tty检测

cd /etc

chmod 640 sudoers
vi /etc/sudoers
#Default requiretty

五、本地Pycharm设置

Settings > Project Interpreter:

Project Interpreter > Add remote(前提:remote端python安装成功):

注意,如果python安装在其它路径,要把路径改过来,如:

Run > Edit Configuration (前提:虚拟机中共享本地目录成功):

六、测试

import osimport sysos.environ['SPARK_HOME'] = '/root/spark-1.4.0-bin-hadoop2.6'sys.path.append("/root/spark-1.4.0-bin-hadoop2.6/python")try:    from pyspark import SparkContext    from pyspark import SparkConf    print ("Successfully imported Spark Modules")except ImportError as e:    print ("Can not import Spark Modules", e)    sys.exit(1)

Result:

ssh://root@192.168.22.250:22/usr/bin/python -u /mnt/shared/test01/test01a.pySuccessfully imported Spark ModulesProcess finished with exit code 0

来个复杂些的:

import syssys.path.append("/root/programs/spark-1.4.0-bin-hadoop2.6/python")try:    import numpy as np    import scipy.sparse as sps    from pyspark.mllib.linalg import Vectors    dv1 = np.array([1.0, 0.0, 3.0])    dv2 = [1.0, 0.0, 3.0]    sv1 = Vectors.sparse(3, [0, 2], [1.0, 3.0])    sv2 = sps.csc_matrix((np.array([1.0, 3.0]), np.array([0, 2]), np.array([0, 2])), shape=(3, 1))    print(sv2)except ImportError as e:    print("Can not import Spark Modules", e)    sys.exit(1)

Result

ssh://root@192.168.22.250:22/root/programs/python3/bin/python -u /mnt/shared/test01/test01a.py  (0, 0)	1.0  (2, 0)	3.0Process finished with exit code 0

Q&A

Q: sudo: sorry, you must have a tty to run sudo

A:
cd /etc
chmod 640 sudoers
vi /etc/sudoers
#Default requiretty  #注释掉 Default requiretty 一行。意思就是sudo默认需要tty终端,注释掉就可以在后台执行了。
Q: VirtualBox的Shared folder功能出现broken shared folder错误
A: 见上文中提到的虚拟机中共享本地目录
Q: 一会儿什么cannot import name accumulators, 一会儿什么cannot import name py4j
A: 
下载pip-7.1.2.tar
tar -xvf pip-7.1.2.tar
cd pip-7.1.2
python setup.py install
pip install py4j
搞定!
参考
https://edumine.wordpress.com/2015/08/14/pyspark-in-pycharm/
http://renien.github.io/blog/accessing-pyspark-pycharm/
http://www.tuicool.com/articles/MJnYJb

等等。。。

你可能感兴趣的文章
【unix网络编程第三版】阅读笔记(二):套接字编程简介
查看>>
【一天一道LeetCode】#115. Distinct Subsequences
查看>>
【一天一道LeetCode】#116. Populating Next Right Pointers in Each Node
查看>>
【一天一道LeetCode】#117. Populating Next Right Pointers in Each Node II
查看>>
【一天一道LeetCode】#118. Pascal's Triangle
查看>>
【一天一道LeetCode】#119. Pascal's Triangle II
查看>>
【unix网络编程第三版】ubuntu端口占用问题
查看>>
【一天一道LeetCode】#120. Triangle
查看>>
【unix网络编程第三版】阅读笔记(三):基本套接字编程
查看>>
【一天一道LeetCode】#121. Best Time to Buy and Sell Stock
查看>>
【一天一道LeetCode】#125. Valid Palindrome
查看>>
【一天一道LeetCode】#231. Power of Two
查看>>
【一天一道LeetCode】#202. Happy Number
查看>>
带你深入理解STL之Vector容器
查看>>
带你深入理解STL之Deque容器
查看>>
带你深入理解STL之Stack和Queue
查看>>
带你深入理解STL之Set和Map
查看>>
Redis源码剖析--源码结构解析
查看>>
Redis源码剖析--动态字符串SDS
查看>>
Redis源码剖析--双端链表Sdlist
查看>>