用pyspark连接mysql

Ana*_*yal 6 python mysql apache-spark pyspark

我想用pyspark连接mysql。我正在使用 jupyter notebook 运行 pyspark。然而,当我这样做时,

dataframe_mysql = sqlContext.read.format("jdbc").options(
    url="jdbc:mysql://localhost:3306/playground",
    driver = "com.mysql.jdbc.Driver",
    dbtable = "play1",
    user="root",
    password="sp123").load()
Run Code Online (Sandbox Code Playgroud)

我得到一个错误

Py4JJavaError:调用 o89.load 时发生错误。:java.lang.ClassNotFoundException:com.mysql.jdbc.Driver。

如何解决此错误并在 pyspark 数据框中加载 mysql 数据?

Rei*_*ith 1

使用由pyspark

通过Maven/Gradle安装MySQL Java连接器驱动或直接下载jar文件。然后提供 pyspark 的 jar 路径作为--jars参数。如果您选择 Maven 方法,对于 mysql 连接器版本 8.0.11 应该是这样的:

pyspark --jars "${HOME}/.m2/repository/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar"
Run Code Online (Sandbox Code Playgroud)

使用findspark

使用add-packages提供 mysql 驱动程序,例如:

import findspark

findspark.add_packages('mysql:mysql-connector-java:8.0.11')
Run Code Online (Sandbox Code Playgroud)