说明
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 文件