PySpark是Python整合Spark的一个扩展包,可以使用Python进行Spark开发。而PySpark需要依赖Spark环境,Spark需要依赖Hadoop环境,而且,本地环境需要安装JDK和Scala。
一、环境准备
Scala环境搭建,本例环境为2.11.8
JDK环境搭建,本例环境为jdk1.8
Python环境准备,本例环境为Anaconda,版本为python 3.7
说明
本例中假设上述环境已经搭建成功
本例中所有环境均搭建在本地,本例为windows10
二、环境搭建
方案一
在本地搭建Hadoop+Spark+Python环境
1)Hadoop环境搭建
安装包下载
本例为hadoop-2.8.5
本地解压
将下载好的包解压到本地环境中,比如/D:/Hadoop/hadoop-2.8.5/
添加环境变量
a.添加环境变量HADOOP_HOME=解压后路径,比如HADOOP_HOME=D:\Hadoop\hadoop-2.8.5
b.向PATH中添加追加HADOOP_HOME\bin
测试环境
命令行中输入hadoop version出现版本信息,表示搭建成功
本地bin目录替换
因为hadoop是搭建在linux集群上的,搭建本地环境(windows)需要windows环境支持包,这里我们直接替换本地hadoop的bin文件夹。
下载地址:https://github.com/cdarlint/winutils,下载对应版本替换本地/bin目录
2)Spark环境搭建
安装包下载
本例为spark-2.2.0-bin-hadoop2.7
本地解压
解压到本地环境中,比如D:\Spark\spark-2.2.0-bin-hadoop2.7
添加环境变量
a. 添加环境变量SPARK_HOME=解压后的目录,比如SPARK_HOME=D:\Spark\spark-2.2.0-bin-hadoop2.7
b. 向PATH追加SPARK_HOME\bin
测试环境
命令行中输入spark-shell出现
即表示搭建成功,
说明
如果出现类似缺少winutil或者hivesession等错误,检查hadoop\bin文件夹是否替换成功,或者替换的版本是否一致。
3) pyspark环境整合
安装包解压
a. 复制spark安装目录\python\lib中的py4j-0.10.4-src.zip和pyspark.zip包,如:
b. 粘贴包并解压至Anaconda安装目录\Lib\site-package下,如果没有使用Anaconda,把Anaconda安装目录替换成Python安装目录。如:
本地测试
在命令行输入python进入python环境,输入import pyspark as ps不报错即表示成功
方案二
该方案与上述Spark环境搭建基本一致
直接从官网获取完整的Pyspark包
解压到本地环境中
配置环境变量PYSPARK_HOME,以及path追加PYSPARK_HOME\bin
复制并解压pyspark解压目录\python\lib中的py4j和pyspark包到Anaconda安装目录\Lib\site-package中
结语
对于Python和Spark的整合,虽然官方提供了相关包Pyspark,Pyspark是依赖Py4j包的。除此之外,还需要基于一些已有的环境,整体完整的环境为JDK+Scala+Hadoop+Spark+Python以及常用的IDE,笔者这里使用的是PyCharm。