SparkSQL 读取 和 保存文件

概述

SparkSQL 对文件的读取和保存都有通用的方式和不同格式文件读取、保存的简化方式。

创建连接对象

val session = SparkSession.builder
          .master("local[*]")
          .appName("read")
          .getOrCreate()

读取文件

默认的读取文件的格式是 .parquet文件,在 Spark 安装包 /examples/src/main/resources 下面有例子

session.read.load("路径")

通用格式

通用个格式默认读取的是 .parquet ,我们可以修改这个默认值

session.read.format("json").load("路径")

简化格式

简化格式只有一些常见的格式

session.read.json("路径")
-------------------------
// 支持格式
csv   format   jdbc   json   load   option   options   orc   parquet   schema   table   text   textFile

读取 MySQL 的数据

需要加入 MySQL 的依赖

方式一

session.read.format("jdbc")
  // 数据库连接
  .option("url", "jdbc:mysql://127.0.0.1:3306/world")
  // 数据库表
  .option("dbtable", "city")
  // 数据库用户名
  .option("user", "root")
  // 数据库表密码
  .option("password", "123456")
  .load()

方式二

// 创建一个 Properties 对象
val properties = new Properties()
properties.put("user","root")
properties.put("password","123456")

session.read.jdbc("jdbc:mysql://127.0.0.1/world","city",properties)

保存文件

默认的保存文件的格式是 .parquet文件

// df 是 DataFrame 或者 DataSet 对象
df.write.save("路径")

通用格式

能指定保存的格式和模式

  • 格式:比如 Json、csv …
  • 模式:有 4 种模式
    • “error”:如果文件存在,则报错
    • “append”:追加
    • “overwrite”:覆写
    • “ignore”:数据存在,则忽略
df.write.mode("保存模式").format("文件格式").save("路径")

简化格式

直接保存为相应格式的文件

df.write.json("路径")
-------------------------
// 支持格式
bucketBy   format       jdbc   mode     options   parquet       save          sortBy   
csv        insertInto   json   option   orc       partitionBy   saveAsTable   text

保存数据到 MySQL

方式一

df.write.mode("append")
          .format("jdbc")
          .option("url","jdbc:mysql://127.0.0.1/spark")
          .option("dbtable","user")
          .option("user","root")
          .option("password","123456")
          .save()

方式二

val properties = new Properties()
properties.put("user","root")
properties.put("password","123456")

df.write.mode("append").jdbc("jdbc:mysql://127.0.0.1/spark","user",properties)
发表评论 / Comment

用心评论~