温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github:
https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
文档编写目的
Fayson在前面的文章《
0483-如何指定PySpark的Python运行环境
》介绍了使用Spark2-submit提交时指定Python的运行环境。也有部分用户需要在PySpark代码中指定Python的运行环境,那本篇文章Fayson主要介绍如何在代码中指定PySpark的Python运行环境。
测试环境
1.RedHat7.2
2.CM和CDH版本为5.15.0
3.Python2.7.5和Python3.6
2
准备Python环境
在这里Fayson准备两个环境Python2和Python3,如下为环境准备步骤:
1.在Anaconda官网下载Python2和Python3的两个安装包,安装过程Fayson这里就不在介绍了
Anaconda3-5.2.0-Linux-x86_64.sh和Anaconda2-5.3.1-Linux-x86_64.sh两个安装包
2.将Python2和Pythonn3两个环境打包,进入到Python2和Python3的安装目录下
使用zip命令将两个环境分别打包
注意:这里是进入到Python的安装目录下进行压缩的,没有带上Python的父目录
3.将准备好的Python2和Python3上传至HDFS
完成以上步骤则准备好了PySpark的运行环境,接下来在提交代码时指定运行环境。
3
准备PySpark示例作业
这里以一个简单的PI PySpark代码来做为示例讲解,该示例代码与前一篇文章有些区别增加了指定python运行环境的事例代码,示例代码如下:
4
示例运行
在运行前我们先执行加载Spark和pyspark的环境变量,否则执行python代码时会找不到“SparkSession”模块的错误,运行python代码则需要确保该节点有Spark2 Gateway客户端配置。
1.在命令执行如下命令加载Spark和python环境变量
2.在命令行使用python命令运行pi_test.py代码
作业提交成功
3.作业执行成功
4.查看作业的Python环境
5
总结
使用python命令执行PySpark代码时需要确保当前执行代码的节点上有Spark的环境变量。
在运行代码前需要指定SPARK_HOME和PYTHONPATH的环境变量,将Spark编译的Python环境加载到环境变量中。
在将PySpark的运行环境Python2和Python3打包放在HDFS后,作业启动的过程会比以往慢一些,需要从HDFS获取Python环境。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。