配置过程
1.打开pycharm设置,点击项目->python解释器->添加解释器-SSH
2.主机地址为Linux主机地址,账户名为root
3.输入Linux主机root账号的密码
4.连接测试通过
5. 选择系统解释器,解释器路径为anaconda目录下envs->创建的虚拟环境->bin->python
6.解释配置完成
在配置完成后,pycharm会自动生成对应的远程服务器目录,本地机器上传的程序文件都会在部署路径里面
使用
1.点击编译器右下角,选择刚刚配置好的解释器
2.点击工具->部署->上传到远程服务器
3.可以前往服务器文件夹里面看看是否上传
4.以text.py为例, 在编译器端运行该文件
import findspark
findspark.init()
from pyspark import SparkConf, SparkContext
if __name__=='__main__':
conf=SparkConf().setAppName("test").setMaster("local[*]")
sc=SparkContext(conf=conf)
rdd=sc.parallelize([1,2,3,4,5,6,7])
def add(data):
return data*100
print(rdd.map(add).collect())
print( rdd.map(lambda data:data*10).collect())
运行结果如下
报错
1. 错误1:JAVA_HOME is not set
原因:没有设置java环境变量
编辑该文件配置
添加java环境变量,地址为远程主机的java地址
2.错误2:WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
原因:无法使用hadoop库
在环境变量中加上spark就可以了
3.错误3: WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
在添加spark环境变量后依然报错,但是这个警告通常不会影响代码的运行,因为PyCharm会使用内置的Java类来处理Hadoop相关的功能。如果没有使用Hadoop相关的功能,您可以忽略这个警告。
想要解决的话,在环境遍历中加上Hadoop即可
4.错误4:py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.isEncryptionEnabled does not exist in the JVM
在代码头部加上两行代码即可
#添加此代码
import findspark
findspark.init()
添加后会提示缺少findspark模块,因为Linux环境下没有安装这个模块,可以使用编译器远程安装到Linux主机上。
5.错误5:java.net.ConnectException: 拒绝连接
原因:没有打开hadoop集群
打开主机端的hadoop集群就可以解决。
(pyspark) root@master:~# start-all.sh