将mysql与pyspark连接

时间:2018-08-21 07:12:35

标签: python mysql apache-spark pyspark

我想用pyspark连接mysql。我正在使用jupyter笔记本来运行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()

我收到错误消息

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

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

2 个答案:

答案 0 :(得分:0)

使用UINavigationBar.appearance().barTintColor = UIColor.blue 启动的笔记本

通过Maven/Gradledownload jar file directly安装MySQL Java连接器驱动程序。然后提供jar路径到pyspark作为pyspark参数。如果选择了maven方法,则对于mysql连接器版本8.0.11应该是这样的:

--jars

使用pyspark --jars "${HOME}/.m2/repository/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar"

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

findspark

答案 1 :(得分:0)

我使用python脚本:

spark = SparkSession \
        .builder \
        .appName('test') \
        .master('local[*]') \
        .config("spark.driver.extraClassPath", "<path to mysql-connector-java-5.1.49-bin.jar>") \
        .getOrCreate()

df = spark.read.format("jdbc").option("url","jdbc:mysql://localhost/<database_name>").option("driver","com.mysql.jdbc.Driver").option("dbtable","<table_name>").option("user","<user>").option("password","<password>").load()

用您的参数替换<>中的任何内容。