直接在shell进行pyspark进行编程,程序没有办法写得太长,而且我们希望能够实现一个及时给出结果的编程环境,可以使用pycharm连接centos上的spark,进行本地编程,同步到centos系统中运行程序,并把结果返回pycharm上。以下是pycharm的环境配置,这里采用的是2020版本的,2023版本变动较大,暂时没有找到配置方法:
- 新建项目→选择pure python→选择existing interpreter→选择更多…按钮
- 选择SSH→New server configuration→Host填写ip地址,这里以:192.168.19.137,Port不变→Username填写自己的系统用户名:root为例→点击New按钮
- 填写Password→点击Nex
- 点击后面的文件夹图标→配置centos上的python路径,选择centos上的python路径,这里选择miniconda里的python路径→点击OK→点击Finish
- 配置上传文件的存放路径:点击Remote project location后的文件夹→选择centos上存放py文件的路径→选择ok→点击create
- 配置部署关联路径:Tools→Deployment→Configuration
- 选择前面配置的远程客户端→选择Mappings→Deployment path的文件夹→选择跟前面上传路径一样的位置→点击OK→点击OK
- 在后面运行中会出现以下错误,需要代码头部添加以下两段代码
没有设置JAVA运行环境
JAVA_HOME is not set
以下代码
import os
JAVA_HOME='/root/bigdata/jdk'
#向系统环境变量中添加 JAVA_HOME路径
os.environ['JAVA_HOME']=JAVA_HOME
指定Python解释器的位置
Exception: Python in worker has different version 2.7 than that in driver 3.6,
PySpark cannot run with different minor versions.Please check environment variables
PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.
添加以下代码
PYSPARK_PYTHON = "/miniconda2/envs/py365/bin/python"
os.environ["PYSPARK_PYTHON"] = PYSPARK_PYTHON
os.environ["PYSPARK_DRIVER_PYTHON"] = PYSPARK_PYTHON
示例代码
运行结果