SparkSQL
默认存储格式是Parquet
,如下操作
存储为parquet
格式,parquet
格式可以有效节省存储空间.另外由于列式存储,读取也比较快.
存储为Parquet
import org.apache.spark.sql.{DataFrame, SparkSession}
object SaveAsParquet {
def main(args: Array[String]): Unit = {
val spark: SparkSession = SparkSession.builder().master("local[1]").appName("test").getOrCreate()
val df: DataFrame = spark.read.json("./data/emp.json")
//没有设置存储格式.默认存储格式就是parquet
df.write.save("/data/dir9")
df.show()
}
}
如下图,默认就是parquet格式
或者也可以
def save2(): Unit = {
val spark: SparkSession = SparkSession.builder().master("local[1]").appName("test").getOrCreate()
val df: DataFrame = spark.read.json("./data/emp.json")
//存储df为parquet格式
df.write.parquet("data/dir10")
df.show()
读取Parquet文件
def read(): Unit = {
val spark: SparkSession = SparkSession.builder().master("local[1]").appName("test").getOrCreate()
//用load方法就可以读取了,参数为parquet所在的文件夹
val df: DataFrame = spark.read.load("data/dir9")
df.show()
}
或者也可以这样读
def read2(): Unit ={
val spark: SparkSession = SparkSession.builder().master("local[1]").appName("test").getOrCreate()
//读取parquet文件
val df: DataFrame = spark.read.parquet("data/dir9")
df.show()
}
总结
spark sql
的默认存储格式就是parquet
parquet
比较省空间,另外,访问也比较快
参考
Spark2.1.0入门:读写Parquet(DataFrame)_厦大数据库实验室博客
SPARK表存储格式在HDFS性能比较 - 简书
https://www.jianshu.com/p/e77ceb52f661