在Pycharm连接远程服务器上的时候,有很多小的细节,笔者这里总结了一下完整的步骤,希望能帮到大家。连接前一定要保证集群已经可以运行pyspark程序。
1.添加SFTP连接
找到菜单栏Tool -> Deployment -> Configuration设置sftp
点击左上角的+号,添加新的连接
注意,不要勾选Visible only for this project。根据自己的需求填写host、username、password,然后点击Test SFTP connection ,确认能连接(注意:如果这里连接失败,且其他的终端,例如xshell、putty可以成功连接的话,请将pycharm版本切换到2018版本,2019版本的pycharm在这里可能会引起timeout!!!)
然后设置一下项目的路径,点击mapping
点击OK
2.添加SSH Interpreter
找到菜单栏File -> Settings
搜索Project Interpreter,点击齿轮,选择add
选择SSH Interpreter,选择下面的Existing server configuration,选中我们刚刚设置的SSH信息
根据需要修改路径,我这里是linux上默认的python的路径
修改本地与服务器路径
点击finish
3.代码编写
然后写上代码
wordcount.py
# coding=UTF-8
import sys
# 设置服务器上py4j库所在的路径
sys.path.append('/home/hadoop/apps/spark/python/lib/py4j-0.10.7-src.zip')
from pyspark.sql import SparkSession
if __name__ == "__main__":
# 如果spark配置了yarn集群,这里的master可以修改为yarn
spark = SparkSession.builder \
.master('local') \
.appName('Pycharm Connection') \
.getOrCreate()
# wordcount操作,这里文件为hdfs的路径
words = spark.sparkContext \
.textFile("/data/words") \
.flatMap(lambda line: line.split("\t")) \
.map(lambda word: (word, 1)) \
.reduceByKey(lambda a, b: a + b) \
.collect()
print (words)
spark.stop()
然后将代码同步到服务器
Tools -> Deployment -> Upload to hadoop03
4.启动设置
点击右上角的三角形,然后删除working directory里面的路径,并更改Environment variables
这里要设置服务器上的SPARK_HOME与PYTHONPATH路径,PYTHONPATH路径一般为SPARK_HOME/python,然后apply并OK
5.本地环境配置
需要将本地的jar包添加进来,不然运行的时候会报错!!!
找到菜单栏File -> Settings
搜索Project Structure,添加jar包
两个jar包都要添加进来
可以看到左边的项目管理器中出现了刚刚添加的两个jar包
6.启动
右键 -> Run ‘wordcount’
结果如下