PySpark开发入门

PySpark开发入门
原作者名字PySpark简介
Spark是由Scala语言开发而成,PySpark 只是Python操作Spark的高级 API,底层还是使用JDK运行Scala的代码逻辑。
环境准备
使用python3.10
安装jdk
由于Spark是使用Scala进行开发的,运行时需要有JDK环境。
下载JDK
- 访问https://adoptium.net/zh-CN/temurin/releases?version=11&os=any&arch=any
- 选择对应环境和版本的JDK进行下载即可。
windows环境下,只需要双击即可运行安装。
- 注意:在自定义安装这一步,要选择:设置或重新JAVA_HOME变量。
- 如果忘记了选择,就需要手动添加
%JAVA_HOME%\bin变量,并将其写入到PATH路径中。
安装完成后,打开命令行窗口测试:
1
java --version
可以正确看到我们安装的JDK版本。
- 如果安装成功,看不到JDK版本信息,那就是缺少
JAVA_HOME环境变量,并缺少将%JAVA_HOME%\bin加入到PATH变量中。
- 如果安装成功,看不到JDK版本信息,那就是缺少
安装hadoop
Spark 启动时会调用
winutils.exe(Hadoop 为 Windows 提供的本地工具),用于处理文件权限、临时目录创建等基础操作,即使是 Local 模式(单机非分布式)也需要。
访问路径下载hadoop :https://hadoop.apache.org/releases.html
我这里下载的是:https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
解压缩,移动到本地安装目录中
配置环境变量:
HADOOP_HOME, 并将%HADOOP_HOME%\bin和%HADOOP_HOME%\sbin加入到PATH变量中。下载与 Hadoop 版本 匹配的
winutils.exe(从winutils 仓库), 放入HADOOP_HOME\bin目录(如D:\develop\hadoop\hadoop-3.3.6\bin)验证
1
winutils.exe version
安装Spark
访问路径下载Spark :https://spark.apache.org/downloads.html
我这里下载的是:https://dlcdn.apache.org/spark/spark-3.5.6/spark-3.5.6-bin-hadoop3.tgz
解压缩,移动到本地安装目录中
配置环境变量:
SPARK_HOME, 并将%SPARK_HOME%\bin和%SPARK_HOME%\sbin加入到PATH变量中。验证
1
pyspark
安装PySpark
1 | pip uninstall pyspark -y |
简单使用
使用python3.10
如果版本不匹配,一定要先删除原来的版本如下
C:\Python\Python3.12\Scripts
C:\Python\Python3.12
添加下面的版本到path环境变量
C:\Python\Python3.10\Scripts
C:\Python\Python3.10\
使用pyspark-shell
安装好pyspark,实际上在虚拟环境的Lib/site-packages下已经存在了完整的spark代码,我们运行如下命令,就可以进入pyspark的命令行了:
1 | cd .\.venv\Lib\site-packages\pyspark\ |
启动后,会打开一个 Web UI http://host.docker.internal:4040/jobs/,可以查看Spark任务的执行情况。
进入shell执行操作测试如下:
1 | # 查看当前路径 |
这个示例通常用于测试 Spark 集群的性能,因为处理 10 亿条数据需要较大的内存和计算资源,能反映出集群的实际处理能力。(执行这个命令消耗大量内存,如果电脑配置低,可能会出现程序崩溃)
spark.range(n):- 这是 SparkSession 提供的方法,用于生成一个包含从
0到n-1的整数的分布式数据集(DataFrame) - 这里的
n是1000 * 1000 * 1000,即 10 亿,所以会生成包含 0 到 999,999,999 的整数序列。
- 这是 SparkSession 提供的方法,用于生成一个包含从
.count():- 这是 DataFrame 的行动操作(action),用于计算数据集中的记录总数
- 会触发 Spark 执行实际的计算(前面的
range只是定义了转换操作)
json数据解析
1、创建json测试数据
1 | import json |
2、测试
1 | from pyspark.shell import spark |
测试PostgreSQL
1、启动docker容器
1 | # 运行PostgreSQL容器 |
2、运行测试
1 | pip install psycopg2 -i https://pypi.tuna.tsinghua.edu.cn/simple |
1 | # 设置Python解释器路径 - 解决Windows上找不到python3的问题 |
测试MySQL
1、启动docker容器
1 | docker ps | findstr "my-mysql" |
2、运行测试
1 | pip install mysql-connector-python -i https://pypi.tuna.tsinghua.edu.cn/simple |
1 | # 设置Python解释器路径 - 解决Windows上找不到python3的问题 |
redis
1 | # 运行Redis容器 |
1 | pip install redis -i https://pypi.tuna.tsinghua.edu.cn/simple |
1 | # 设置Python解释器路径 - 解决Windows上找不到python3的问题 |
mongodb
1 | # 运行MongoDB容器 |
1 | pip install pymongo -i https://pypi.tuna.tsinghua.edu.cn/simple |
1 | # 设置Python解释器路径 - 解决Windows上找不到python3的问题 |















