DEMO-Pyspark On Mammut

适用模块

离线开发

具体说明

打包python环境至hdfs,供离线开发使用

使用示例

1、准备python环境
anaconda安装包路径:https://repo.anaconda.com/archive/
Old package lists https://docs.anaconda.com/anaconda/packages/oldpkglists/

conda create --name pyspark3.6 --quiet  --copy --yes python=3.6 numpy scipy pandas pyspark

进入环境(demo环境在demo21节点/mnt/dfs/1/anaconda3/bin
source activate pyspark3.6
安装插件
pip install   xxx

pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz
其他安装方式参照:https://docs.python.org/3/tutorial/venv.html
退出环境
conda deactivate
2、打包环境  (建议tar.gz格式)
切换至anaconda3/envs目录下
tar -zcvf pyspark3.6.tar.gz pyspark3.6
3、文件比较大,无法通过猛犸的web页面上传,只能通过hadoop客户端上传
hdfs dfs -put pyspark3.6.tar.gz /user/项目名/xxx/
4、配置pyspark任务
如下所示将传参信息打印并查询hive表数据
pysparkhive.py脚本代码示例:  
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("My app").getOrCreate()
datexxx = spark.conf.get("spark.date123")
print('-------------')
print(datexxx)
print('-------------')
my_dataframe = spark.sql("select * from mammut_user.weather_info")
my_dataframe.show()

spark.stop()

Demo-Pyspark On Mammut - 图1 Demo-Pyspark On Mammut - 图2 Demo-Pyspark On Mammut - 图3 Demo-Pyspark On Mammut - 图4

spark配置参数说明(需要传递给spark的参数需要设置前缀conf.):  
conf.spark.yarn.dist.archives=hdfs://easyops-cluster/user/bdms/pyspark3.6.tar.gz#envs
实际压缩包名称根据自己打包环境决定
压缩的文件会被提取到executor到工作目录下面去,后面到#envs表示,这个文件被解压成到文件名称  
conf.spark.yarn.appMasterEnv.PYSPARK_PYTHON=envs/pyspark3.6/bin/python3.6
指定python的环境

作者:林帅