pyspark to mysql_PySpark 连接 MySQL 示例

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

配置流程

安装 pyspark

配置 mysql-connector.jar

创建连接

读取数据

安装 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/5a9ea689f265da23906b89e1),作者:严北(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),禁止盗用

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[PySpark 连接 MySQL 示例]http://www.zyiz.net/tech/detail-142642.html

你可能感兴趣的:(pyspark,to,mysql)