当前位置: 首页>后端>正文

PySpark胎教1.0——环境部署(Windows篇)

前言:Spark数据源兼容性特别优秀,能够完美使用MySQL、HDFS、Excel甚至CSV文件,在注重分析过程的业务场景中能跳过ETL流程直接进入分析阶段,在“小而美”(指数据量较小且价值较高)的业务场景下提高分析效率,因此本文将介绍Windows环境下的PySpark使用经验。

环境一览:

操作系统 数据库 Python Java Scala Hadoop Spark
Windows 11 MariaDB 10.9 3.9 jdk-8u351 2.13 3.2.2 3.0.3

1、安装MariaDB
MySQL被Oracle收购后,继续使用MySQL有商标侵权的风险,因此这里使用有MySQL衍生的MariaDB
MariaDB环境部署比较简单,安装时记住root用户的密码即可,这里不再赘述
下载地址:Download MariaDB Server - MariaDB.org

PySpark胎教1.0——环境部署(Windows篇),第1张
MariaDB.png

2、安装Python
推荐安装Python 3.7以上版本,此处以3.9为例,建议安装到C:\env
安装过程比较简单,无脑按下一步即可,这里不再赘述。
下载地址:https://www.python.org/ftp/python/3.9.2/python-3.9.2rc1-amd64.exe

PySpark胎教1.0——环境部署(Windows篇),第2张
Python.png

3、安装Java
PySpark的程序通过Py4J提交到JVM运行,所以电脑里要有JDK环境,这里推荐使用 JDK_8u351,建议安装到C:\env
安装过程比较简单,无脑按下一步即可,这里不再赘述
下载地址:https://www.oracle.com/java/technologies/downloads/#license-lightbox

PySpark胎教1.0——环境部署(Windows篇),第3张
Java.png

4、安装Scala
Spark的底层由Scala构建,启动spark-shell需要Scala环境,这里推荐Scala 2.13版本,建议安装到C:\env
安装过程比较简单,无脑按下一步即可,这里不再赘述。
下载地址:https://downloads.lightbend.com/scala/2.13.10/scala-2.13.10.msi

PySpark胎教1.0——环境部署(Windows篇),第4张
Scala.png

5、安装Hadoop(重要!)
这里跟别的教程做一些不同的事情,我们的出发点是在Windows环境下跨过ETL流程直接分析数据,因此不需要搭建本地集群启动本地HDFS,只需要让PyCharm的PySpark运行起来即可。所以,Hadoop环境只需要一个带有winutils.exe的Hadoop bin即可,这个东西在GitHub上已经有大佬给我们写好,搬下来使用即可
GitHub地址:cdarlint/winutils: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows (github.com)

PySpark胎教1.0——环境部署(Windows篇),第5张
winutils.png

点击右上角的Code按钮,点击Local,再点击Download ZIP,下载整个代码项目
PySpark胎教1.0——环境部署(Windows篇),第6张
Download winutils.png

打开压缩包发现所有版本的Hadoop都下载了,我们只要把hadoop-3.2.2解压出来就行,按照我的习惯,解压到C:\env\hadoop-3.2.2
PySpark胎教1.0——环境部署(Windows篇),第7张
hadoop-3.2.2.png

Hadoop目录添加到环境变量,变量名=HADOOP_HOME,变量值=C:\env\hadoop-3.2.2
PySpark胎教1.0——环境部署(Windows篇),第8张
HADOOP_HOME.png

在Path变量里添加%HADOOP_HOME%\bin
PySpark胎教1.0——环境部署(Windows篇),第9张
HADOOP_HOME bin.png

6、安装Spark(重要!)
Spark使用spark-3.0.3-bin-hadoop3.2版本(因为其他版本我没试过),否则会有莫名其妙的报错
下载地址:https://archive.apache.org/dist/spark/spark-3.0.3/spark-3.0.3-bin-hadoop3.2.tgz
下载好后打开到最里面的文件夹,解压缩到C:\env
PySpark胎教1.0——环境部署(Windows篇),第10张
spark-3.0.3-bin-hadoop3.2.png

Saprk目录添加环境变量,变量名=SPARK_HOME,变量值=C:\env\spark-3.0.3-bin-hadoop3.2
PySpark胎教1.0——环境部署(Windows篇),第11张
SPARK_HOME.png

在Path变量里添加%SPARK_HOME%\bin
PySpark胎教1.0——环境部署(Windows篇),第12张
SPARK_HOME bin.png

spark-3.0.3-bin-hadoop3.2\python\lib目录下有两个zip包,分别为py4j-xxx-src.zip和pyspark.zip,将这两个zip包解压缩至python39\Lib\site-packages目录下,使Python能读取这两个包
PySpark胎教1.0——环境部署(Windows篇),第13张
解压PY4J&PySpark.png

将PYTHONPATH添加到环境变量,变量名=PYTHONPATH,变量值应有两个,其一为C:\env\spark-3.0.3-bin-hadoop3.2\python,其二为C:\env\Python39(就是步骤2中安装Python的路径)
PySpark胎教1.0——环境部署(Windows篇),第14张
PYTHONPATH.png

将%PYTHONPATH%添加到Path变量里
PySpark胎教1.0——环境部署(Windows篇),第15张

7、检查环境
1)环境变量中应有以下内容:
变量名 变量值
JAVA_HOME C:\env\Java\jdk1.8.0_351
SCALA_HOME C:\env\scala
HADOOP_HOME C:\env\hadoop-3.2.2
SPARK_HOME C:\env\spark-3.0.3-bin-hadoop3.2
PYTHONPATH C:\env\spark-3.0.3-bin-hadoop3.2\python;C:\env\Python39

2)Path中应有以下变量值

变量值
%SPARK_HOME%\bin
%SCALA_HOME%\bin
%HADOOP_HOME%\bin
%PYTHONPATH%
%JAVA_HOME%\bin

8、运行项目
1)安装PyCharm,克隆我的GitHub项目
GitHub地址:Zeratur/test_project (github.com)
2)将项目lib目录中的MariaDB驱动 mariadb-java-client-3.1.0.jar 复制粘贴到 C:\env\spark-3.0.3-bin-hadoop3.2\jars 目录下

PySpark胎教1.0——环境部署(Windows篇),第16张
MariaDB驱动 .png

3)把config\config.ini 中的配置参数修改成你本机MariaDB的参数。一般改password和database即可
PySpark胎教1.0——环境部署(Windows篇),第17张
修改config.png

4)安装依赖包:
pip install pandas
pip install pymsql
这两个包是项目的依赖程序,需要安装,不然会报错

目前项目支持csv、xlsx和MySQL三个数据源,MySQL的配置可以再config.ini里更改,csv和xlsx输出的结果文件存在output文件夹,读取数据的方法写在utils\dataUtils.py里,后续再添加其他数据源。

如有问题,欢迎探讨。


https://www.xamrdz.com/backend/36g1944819.html

相关文章: