DataFrameReader、DataFrameWrite、Spark整合Hive、JDBC |
您所在的位置:网站首页 › sparkdataframewrite写入hive › DataFrameReader、DataFrameWrite、Spark整合Hive、JDBC |
数据读写
初识 DataFrameReader
SparkSQL 的一个非常重要的目标就是完善数据读取, 所以 SparkSQL 中增加了一个新的框架, 专门用于读取外部数据源, 叫做 DataFrameReader def reader1(): Unit = { // 1. 创建 SparkSession val spark = SparkSession.builder() .master("local[6]") .appName("reader1") .getOrCreate() // 2. 框架在哪 val reader: DataFrameReader = spark.read }DataFrameReader 由如下几个组件组成 一种是使用 load 方法加载, 使用 format 指定加载格式 一种是使用封装方法, 类似 csv, json, jdbc 等. def reader2(): Unit = { // 创建 SparkSession val spark = SparkSession.builder() .master("local[6]") .appName("reader2") .getOrCreate() // 第一种形式 load spark.read .format("csv") .option("header", value = true) .option("inferSchema", value = true) .load("dataset/BeijingPM20100101_20151231.csv") .show(10) // 第二种形式 csv 等封装方法 spark.read .option("header", value = true) .option("inferSchema", value = true) .csv("dataset/BeijingPM20100101_20151231.csv") .show(10) }但是其实这两种方式本质上一样, 因为类似 csv 这样的方式只是 load 的封装 如果使用 load 方法加载数据, 但是没有指定 format 的话, 默认是按照 Parquet 文件格式读取 也就是说, SparkSQL 默认的读取格式是 Parquet 初识 DataFrameWriter对于 ETL 来说, 数据保存和数据读取一样重要, 所以 SparkSQL 中增加了一个新的数据写入框架, 叫做 DataFrameWriter val spark: SparkSession = ... val df = spark.read .option("header", true) .csv("dataset/BeijingPM20100101_20151231.csv") val writer: DataFrameWriter[Row] = df.writeDataFrameWriter 中由如下几个部分组成
为了能够保存比较复杂的数据, 并且保证性能和压缩率, 通常使用 Parquet 是一个比较不错的选择. 所以外部系统收集过来的数据, 有可能会使用 Parquet, 而 Spark 进行读取和转换的时候, 就需要支持对 Parquet 格式的文件的支持. 使用代码读写 Parquet文件默认不指定 format 的时候, 默认就是读写 Parquet 格式的文件 def parquet(): Unit = { // 1. 读取 CSV 文件的数据 val df = spark.read .option("header", true) .csv("dataset/BeijingPM20100101_20151231.csv") // 2. 把数据写为 Parquet 格式 // 写入的时候, 默认格式就是 parquet // 写入模式, 报错, 覆盖, 追加, 忽略 df.write .mode(SaveMode.Overwrite) .save("dataset/beijing_pm3") // 3. 读取 Parquet 格式文件 // 默认格式是否是 paruet? 是 // 是否可能读取文件夹呢? 是 spark.read .load("dataset/beijing_pm3") .show() } 写入 P |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |