Spark-JDBC 电玩女神 2023-02-19 09:27 16阅读 0赞 Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中。 **`注意:需要将相关的数据库驱动放到spark的类路径下。`** mv mysql-connector-java-5.1.27-bin.jar /export/servers/spark/jars/ (1)启动spark-shell bin/spark-shell (2)从Mysql数据库加载数据方式一 val jdbcDF = spark.read.format("jdbc").option("url", "jdbc:mysql://hadoop102:3306/rdd").option("dbtable", "donglin") .option("user", "root").option("password", "root").load() 查看 jdbcDF.show (3)从Mysql数据库加载数据方式二 val connectionProperties = new Properties() connectionProperties.put("user", "root") connectionProperties.put("password", "root") val jdbcDF2 = spark.read.jdbc("jdbc:mysql://hadoop102:3306/rdd", "donglin", connectionProperties) (4)将数据写入Mysql方式一 jdbcDF.write.format("jdbc").option("url", "jdbc:mysql://hadoop102:3306/rdd").option("dbtable", "donglin").option("user", "root").option("password", "root").save() 这样可能会报错 视图已存在 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2NTQ4ODU1_size_16_color_FFFFFF_t_70] 解决方案 方式二也一样 jdbcDF.write.mode("append").format("jdbc").option("url", "jdbc:mysql://hadoop102:3306/rdd").option("dbtable", "donglin").option("user", "root").option("password", "root").save() (5)将数据写入Mysql方式二 jdbcDF2.write .jdbc("jdbc:mysql://hadoop102:3306/rdd", "donglin", connectionProperties) [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2NTQ4ODU1_size_16_color_FFFFFF_t_70]: https://img-blog.csdnimg.cn/20200619223411354.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2NTQ4ODU1,size_16,color_FFFFFF,t_70
还没有评论,来说两句吧...