spark3.0教程-SparkSQL:save()通用保存文件和parquet 格式文件

说明

DataFrame、Dataset 的 .write.save("文件夹路径") 方法,是通用保存文件的方法,默认保存为 parquet 格式文件,详见 链接

保存为其他格式文件,需要搭配 .format("格式") 方法

例子1

保存为 parquet 格式文件

package read

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

object Std_save_parquet {
  def main(args: Array[String]): Unit = {
    val sc = new SparkConf().setMaster("local[*]").setAppName("std")
    var ss = SparkSession.builder().config(sc).getOrCreate()

    val df: DataFrame = ss.read
      .format("csv") // 配合 load() 方法,表示加载 csv 格式文件
      .option("header", "false") //默认为false,表示第一行不是表头
      .option("sep", ",") //列分隔符
      .load("cdz.txt") //通用加载文件方法
      .toDF("id","ele_num","time","start_time","end_time")

    df.write.save("res") // 保存的文件夹
    ss.close()
  }
}

执行结果:

在 res 文件夹下有以下文件:

  • _SUCCESS:表示执行成功
  • ._SUCCESS.crc:crc 文件
  • part-00000-xxxx.snappy.parquet:文件,可通过 idea 打开
  • .part-00000-xxxx.parquet.crc:数据的 crc 文件

例子2

保存为 csv 格式文件

package read

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

object Std_save_csv {
  def main(args: Array[String]): Unit = {
    val sc = new SparkConf().setMaster("local[*]").setAppName("std")
    var ss = SparkSession.builder().config(sc).getOrCreate()

    val df: DataFrame = ss.read
      .format("csv") // 配合 load() 方法,表示加载 csv 格式文件
      .option("header", "false") //默认为false,表示第一行不是表头
      .option("sep", ",") //列分隔符
      .load("cdz.txt") //通用加载文件方法
      .toDF("id","ele_num","time","start_time","end_time")

    df.write
      .format("csv") // 指定 csv 格式文件
      .save("res2") // 保存的文件夹
    ss.close()
  }
}

执行结果

在 res2 文件夹下有 part-00000-xxxx.snappy.csv 文件


原文出处:/show_1IX4KJwpIBRr.html