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环境搭建
-
安装包下载
官方下载地址:https://www.apache.org/dist/hadoop/common/选择你需要的版本
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环境搭建
-
安装包下载
官方地址:https://archive.apache.org/dist/spark/,选择Spark版本以及对应hadoop版本
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。