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

本文探讨了在公司使用统一的Spark大数据集群(Python2.7)与项目组不同Python版本(3.5/3.6)共存的问题。通过使用conda创建Python虚拟环境,并在提交pyspark作业时指定Python路径,解决了版本不匹配的问题。同时,介绍了如何在虚拟环境中安装和测试第三方包(如pandas),并提供了测试文件的示例。在提交参数中,提到了参数`--py-files`用于分发Python依赖。虽然有其他方法,但作者推荐的方法在实践中有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 结尾的文件,内容是我们的py
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值