spark-python版本依赖与三方模块方案

  • Post author:
  • Post category:python



spark-python版本依赖与三方模块方案

1. 背景

公司有统一的spark大数据集群,但spark用的python版本是python2.7,项目组这边都是用python3.5,甚至有些项目用的是python3.6,对某些第三方包,有些项目用到pandas0.18,有些是pandas0.23等。相信这个问题用python的同学都遇到过,就是python的版本管理和第三包版本管理问题,一般用python虚拟环境就能解决。

针对我们遇到的spark的python版本问题,当然也是要通过python虚拟环境来解决,管理虚拟环境,当然还是conda好用。

2. 解决方法

原理其实很简单,就是在提交pyspark作业的时候,设定项目的python版本路径即可。

2.1. 虚拟环境安装

首先我们创建一个python3.6的虚拟环境

$ conda create -n test_pyspark python=3.6
#
# To activate this environment, use:
# > source activate test_pyspark
#
# To deactivate an active environment, use:
# > source deactivate
#

接着我们在刚才新建的虚拟环境中安装pandas包和logzero包。

$ source activate test_pyspark
$ pip install logzero
$ pip install pandas

为了测试能够引用第三方包外,还要测试能引用项目的其他代码,因此,需要将项目地址添加到python的索引目录,也就是

site-package

# 进入刚才新建的虚拟环境的site-package
$ cd /usr/local/miniconda/envs/test_pyspark/lib/python3.6/site-packages/
# 创建一个 .pth 



版权声明:本文为suzyu12345原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。