mysql的数据是存到本地,用Spark将mysql数据库的表保存到本地的多种实现方式

package SparkSql

import org.apache.spark.sql.{DataFrame, SparkSession}

object JdbcDataSource {

def main(args: Array[String]): Unit = {

val spark=SparkSession.builder()

.appName(this.getClass.getSimpleName)

.master("local[*]").getOrCreate()

val logs:DataFrame = spark.read.format("jdbc").options(

Map("url" ->"jdbc:mysql://localhost:3306/mysql",

"driver" ->"com.mysql.jdbc.Driver",

"dbtable" ->"help_category",

"user" ->"root",

"password" ->"root")

).load()

//    val filter: Dataset[Row] = logs.filter(r => {

//      r.getAs[Int](2) <=34

//    })

//    filter.show()

//lambda表达式

import spark.implicits._

val lo = logs.filter($"parent_category_id" <=34)

//    val lop=logs.where($"parent_category_id"<=34)

//查询

val res = lo.select($"help_category_id",$"name",$"parent_category_id" *10 as"new_age")

//将查询的结果设置成一张新表

val props=new Properties()

props.put("user","root")

props.put("password","root")

//ignore :当该表已经存在时既不对其增加操作也不执行覆盖操作

res.write.mode("ignore").jdbc("jdbc:mysql://localhost:3306/mysql","logs1",props)

//将文件保存到本地

//只能保存一列,且该列必须是字符串类型

//    res.write.text("D:\\out\\sql")

//将文件保存到本地且为json格式

//{"help_category_id":1,"name":"Geographic","new age":0}

//    res.write.json("D:\\out\\sql")

//将文件保存到本地且为xls工作表格式,不记录列名和表头

//    res.write.csv("D:\\out\\sql")

res.write.parquet("D:\\out\\sql")

spark.stop()

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值