spark-SQL的数据源的读写--jdbc--parquet--json--CSV

本文介绍了Spark SQL如何处理不同数据源,包括使用JDBC连接MySQL进行数据读写,以及对Parquet、JSON和CSV文件的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于spark-sql的读写文件的方法,数据源分为这几类:

1.jdbc连接mysql的文件的读写

//从mysql中读取数据,需要指定表,驱动类。
    val url = "jdbc:mysql://localhost:3306/bbs?characterEncoding=utf-8"
    val tname = "t_acc_Ip"
    val conn = new Properties()
    conn.setProperty("user","root")
    conn.setProperty("password","123456")
    conn.setProperty("Driver","com.mysql.jdbc.Driver")
    val jdbc: DataFrame = session.read.jdbc(url,tname,conn)

    //将数据处理后写出到mysql
    jdbc.select("*").write.mode(SaveMode.Overwrite).jdbc(url,"emp",conn)

2.parquet文件格式的读写

 //读取parquet文件
    val file: DataFrame = session.read.parquet("test.parquet")
    val data: Dataset[Row] = file.limit(10)
    data.printSchema()
    data.show()
    //写出parquet文件
    data.write.mode(SaveMode.Overwrite).parquet("aa")
3.json文件的读写

//读取json的文件,{"name":"zs","age":"20","fv":"80"}
    val json = session.read.json("test.json")
    json.write.mode(SaveMode.Overwrite).json("jsonout")
    
    //也就是说是可以将一个元组的数据写出成为一个json的格式了。
    val json2: Dataset[String] = session.createDataset(List("a b c"))
    val map: Dataset[(String, String, String)] = json2.map({
      ls =>
        val fields = ls.split(" ")
        (fields(0), fields(1), fields(2))
    })
    map.write.mode(SaveMode.Overwrite).json("a")
4.csv文件的读写

//读取CSV格式数据(分隔符是--,)
    val data: DataFrame = session.read.csv("a")
    //写出数据
    data.write.mode(SaveMode.Overwrite).csv("b")

5.普通文件的读写

//读取普通文件
  private val file = session.read.textFile("a.txt")
  //save方法写成parquet文件格式
  file.write.save("a")
  file.write.text("b")
  //写到HDFS文件系统
  file.rdd.saveAsTextFile("")
text方式保存文件只能有一列,相当于字符串

savemode分为四类。Append, Overwrite, ErrorIfExists, Ignore;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值