gpt4 book ai didi

mysql - 无法从 pyspark 连接到 Mysql 数据库,出现 jdbc 错误

转载 作者:行者123 更新时间:2023-11-29 02:42:17 25 4
gpt4 key购买 nike

我正在学习 pyspark,并尝试连接到 mysql 数据库。

但是我在运行代码时遇到了 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 异常。我花了一整天试图修复它,任何帮助将不胜感激:)

我正在使用带有 anaconda 和 python 3.6.3 的 pycharm 社区版

这是我的代码:

from pyspark import SparkContext,SQLContext
sc= SparkContext()
sqlContext= SQLContext(sc)

df = sqlContext.read.format("jdbc").options(
url ="jdbc:mysql://192.168.0.11:3306/my_db_name",
driver = "com.mysql.jdbc.Driver",
dbtable = "billing",
user="root",
password="root").load()

这里是错误:

py4j.protocol.Py4JJavaError: An error occurred while calling o27.load.
: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

最佳答案

在撰写本文时 9 个月前有人问过这个问题,但由于没有答案,所以就这样了。我遇到了同样的情况,一遍又一遍地搜索 stackoverflow,尝试了不同的建议,但最终的答案简单得离谱:您只需将 MySQL 驱动程序复制到 Spark 的“jars”文件夹中即可!

在这里下载https://dev.mysql.com/downloads/connector/j/5.1.html

我使用的是 5.1 版本,尽管存在 8.0,但在使用 Spark 2.3.2 运行最新版本时我遇到了一些其他问题(在 Windows 10 上运行 Spark 2.4 时也遇到了其他问题)。

下载后,您只需将其复制到您的 Spark 文件夹即可E:\spark232_hadoop27\jars\(使用您自己的驱动器:\folder_name -- 这只是一个示例)

你应该有两个文件:E:\spark232_hadoop27\jars\mysql-connector-java-5.1.47-bin.jarE:\spark232_hadoop27\jars\mysql-connector-java-5.1.47.jar

之后,通过 pyCharm 或 jupyter notebook 启动的以下代码应该可以工作(只要您设置了 MySQL 数据库,即):

import findspark
findspark.init()

import pyspark # only run after findspark.init()
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

dataframe_mysql = spark.read.format("jdbc").options(
url="jdbc:mysql://localhost:3306/uoc2",
driver = "com.mysql.jdbc.Driver",
dbtable = "company",
user="root",
password="password").load()

dataframe_mysql.show()

请记住,我目前正在本地使用我的 Spark 设置,因此没有涉及真正的集群,也没有提交到此类集群的“生产”类代码。对于更详细的内容,此答案可能会有所帮助:MySQL read with PySpark

关于mysql - 无法从 pyspark 连接到 Mysql 数据库,出现 jdbc 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49011012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com