美文网首页
Windows下用pyspark连接mysql数据库

Windows下用pyspark连接mysql数据库

作者: 芊芊是我的 | 来源:发表于2019-04-26 16:14 被阅读0次

    最近开始学spark,本来想在虚拟机上学的,但是配置完之后老是报错,搜了半天也找不到解决方案,无奈只好回windows主机上学习了,用的语言是python(不是cs,只会python。。)

    因为之前的windows上没装hive,所以就打算学习一下用pyspark连接mysql数据库,读写DataFrame。然而照着网上的博客敲代码之后,总是给我报错。看了看主要的错误是:

    java.sql.SQLException: No suitable driver found for...
    

    安装mysql的jdbc驱动

    于是百度了一下,说是没安装mysql的jdbc驱动。OK,先在命令行上看一下自己的mysql版本: 11.png

    然后去官网找对应的驱动,结果发现没有我的这个版本??找了一会发现下面这个网站可以:mvnrepository

    下载好压缩包后,把里面的jar文件拖到spark安装目录下的/jars目录下: 12.png 可是试了一下代码发现还是不行?wtf...继续百度找答案,看到有个答主说还要把这个驱动放到%JAVA_HOME%下的/jre/lib/ext/目录下,继续照做: 13.png

    这次总该可以了吧!结果理想是美好的,现实总是残酷的。。还是不可以

    SPARK_CLASSPATH环境变量

    多方查找资料后,因为网上基本上都是linux环境下的解决方案,我在下面的博客里找到了一个解决方法:
    spark读mysql数据

    14.png

    但是我是windows环境,环境变量的设置可以用这个语法吗?(原谅我对linux也只是了解一点点,所以没这么试)所以我就尝试了一下,在系统高级设置的环境变量里,自己新建了一个SPARK_CLASSPATH变量,赋值就是上面的jar包路径:


    15.png

    然后重启kernal,结果发现连接成功了!打印了一下数据集,完美~代码在下面:

    from pyspark.sql import SparkSession
    spark = SparkSession.builder \
                .appName('My first app') \
                .getOrCreate()
    url = 'jdbc:mysql://localhost:3306/exercise?characterEncoding=utf-8&autoReconnect=true'
    properties ={'user':'root','password':'tqd950603'}
    df = spark.read.jdbc(url=url,table="tips",properties=properties)
    df.show()
    

    运行结果如下:

    +---+----------+----+------+------+---+------+----+------------------+
    | id|total_bill| tip|   sex|smoker|day|  time|size|           tip_pct|
    +---+----------+----+------+------+---+------+----+------------------+
    |  0|     16.99|1.01|Female|    No|Sun|Dinner|   2|0.0594467333725721|
    |  1|     10.34|1.66|  Male|    No|Sun|Dinner|   3| 0.160541586073501|
    |  2|     21.01| 3.5|  Male|    No|Sun|Dinner|   3| 0.166587339362208|
    |  3|     23.68|3.31|  Male|    No|Sun|Dinner|   2| 0.139780405405405|
    |  4|     24.59|3.61|Female|    No|Sun|Dinner|   4| 0.146807645384303|
    |  5|     25.29|4.71|  Male|    No|Sun|Dinner|   4| 0.186239620403321|
    |  6|      8.77| 2.0|  Male|    No|Sun|Dinner|   2| 0.228050171037628|
    |  7|     26.88|3.12|  Male|    No|Sun|Dinner|   4| 0.116071428571429|
    |  8|     15.04|1.96|  Male|    No|Sun|Dinner|   2|  0.13031914893617|
    |  9|     14.78|3.23|  Male|    No|Sun|Dinner|   2| 0.218538565629229|
    | 10|     10.27|1.71|  Male|    No|Sun|Dinner|   2| 0.166504381694255|
    | 11|     35.26| 5.0|Female|    No|Sun|Dinner|   4| 0.141803743618832|
    | 12|     15.42|1.57|  Male|    No|Sun|Dinner|   2| 0.101815823605707|
    | 13|     18.43| 3.0|  Male|    No|Sun|Dinner|   4| 0.162778079218665|
    | 14|     14.83|3.02|Female|    No|Sun|Dinner|   2| 0.203641267700607|
    | 15|     21.58|3.92|  Male|    No|Sun|Dinner|   2| 0.181649675625579|
    | 16|     10.33|1.67|Female|    No|Sun|Dinner|   3| 0.161665053242982|
    | 17|     16.29|3.71|  Male|    No|Sun|Dinner|   3| 0.227747084100675|
    | 18|     16.97| 3.5|Female|    No|Sun|Dinner|   3| 0.206246317030053|
    | 19|     20.65|3.35|  Male|    No|Sat|Dinner|   3| 0.162227602905569|
    +---+----------+----+------+------+---+------+----+------------------+
    only showing top 20 rows
    

    话说这好像是我的处女文。。写这篇文章的初衷是因为我找了半天的资料,关于windows环境的实在是太少了。。。也希望如果有和我一样坑爹的用win环境的小伙伴遇到同样的问题可以少走一点弯路吧~

    相关文章

      网友评论

          本文标题:Windows下用pyspark连接mysql数据库

          本文链接:https://www.haomeiwen.com/subject/yshqnqtx.html