专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

PySpark 连接 MySQL 示例

本文于掘金,作者:严北(wx: shin-devops),禁止盗用

配置流程

1、 安装 pyspark
2、 配置 mysql-connector.jar
3、 创建连接
4、 读取数据

安装 PySpark

本地创建一个新的项目,执行 pip install pyspark==3.0,安装 PySpark。

MySQL-Connector 配置

下载

进入 https://dev.mysql.com/downloads/connector/j/ 下载对应的版本的 Platform Independent 的压缩包:

Connector/J version JDBC version MySQL Server version JRE Required JDK Required for Compilation Status
5.1 3.0, 4.0, 4.1, 4.2 5.61, 5.71, 8.01 JRE 5 or higher1 JDK 5.0 AND JDK 8.0 or higher2, 3 General availability
8.0 4.2 5.6, 5.7, 8.0 JRE 8 or higher JDK 8.0 or higher2 General availability. 推荐

点击查看完整 版本关联关系

mysql-connector-java-8.0.20.tar.gz 为例,下载完成后,解压得到 mysql-connector-java-8.0.19.jar

移动到 SPARK_HOME 路径下

若通过其他方式安装,可以在本地执行 echo $SPARK_HOME 可以查看 Spark 安装路径。

直接通过 pip install pyspark==3.0 的方式安装 PySpark,$SPARK_HOME 环境变量为空,这时候网上其他的配置文档提到的 “复制 mysql-connector.jar 到 $SPARK_HOME/jars 文件夹下” 的步骤就无法执行下去,代码会报:

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

本文于掘金,作者:严北(wx: shin-devops),禁止盗用

解决方法,是通过 PySpark 代码中的 _find_spark_home 方法找到 $SPARK_HOME:

>>> from pyspark import find_spark_home
>>> print(find_spark_home._find_spark_home())

/home/ityoung/test-spark/venv/lib/python3.6/site-packages/pyspark

然后将 $SPARK_HOME 设置为该路径,复制 mysql-connector.jar$SPARK_HOME/jars 中即可:

export SPARK_HOME=/home/ityoung/test-spark/venv/lib/python3.6/site-packages/pyspark
mv mysql-connector-java-8.0.19.jar $SPARK_HOME/jars

Spark 代码示例

参考:zhuanlan.zhihu.com/p/136777424 转载注明出处

main.py

# 本文于[掘金](https://juejin.im/user/3579665589502909),作者:严北(wx: shin-devops),禁止盗用
from pyspark import SparkContext
from pyspark.sql import SQLContext, Row
​
if __name__ == '__main__':
    # spark 初始化
    sc = SparkContext(master='local', appName='sql')
    spark = SQLContext(sc)
    # mysql 配置(需要修改)
    prop = {'user': 'xxx',
            'password': 'xxx',
            'driver': 'com.mysql.cj.jdbc.Driver'}
    # database 地址(需要修改)
    url = 'jdbc:mysql://host:port/database'

    # 读取表
    data = spark.read.jdbc(url=url, table='tb_test', properties=prop)
    # 打印data数据类型
    print(type(data))
    # 展示数据
    data.show()
    # 关闭spark会话
    spark.stop()

修改代码中的配置,运行即可看到数据输出:

python main.py

本文于掘金,作者:严北(wx: shin-devops),禁止盗用

文章永久链接:https://tech.souyunku.com/44061

未经允许不得转载:搜云库技术团队 » PySpark 连接 MySQL 示例

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们