rdd 写入 mysql_spark 2.1写入mysql spark 2.1 write to mysql

本文介绍了Spark2.1中SparkSession的使用,它替代了SparkContext。示例展示了如何创建SparkSession,以及如何利用DataFrame API连接到MySQL数据库并将数据写入表中。重点讲解了toDF函数的变参用法,强调了不指定列名可能导致的错误。
摘要由CSDN通过智能技术生成

先说说spark 2.1的SparkSession,原来的SparkContext已经并入SparkSession,所以需要这样开始:

import org.apache.spark.sql.SparkSession

val sc = SparkSession

.builder()

.appName("reas csv to label data ")

.getOrCreate()

下面是连接数据库,并把rdd写入mysql的语句:

val url="jdbc:mysql://192.168.0.28:3306/database"

val prop = new java.util.Properties

prop.setProperty("driver", "com.mysql.jdbc.Driver")

prop.setProperty("user", jdbcUsername)

prop.setProperty("password", jdbcPassword)

val cols = "ip"::"source"::"hour"::"count"::Nil

val df = data.toDF(cols:_*)

df.write.mode("append").jdbc(url, "table", prop)

这里介绍下toDF,函数的参数是一个(colNames:String),叫变参,而我传入的cols是个String的list,list通过cols:_转为变参,你学会了吗?而这个是你数据库的fields,如果不告诉toDF列名,那么编号从_1,_2,…,_N开始,就会出现Unkonwn column '_1' in 'field list'的错误:

fe090021bb61

image.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值