Spark SQL 的數據加載與保存(load , save)

Spark SQL主要是操作DataFrame,DataFrame本身提供了save和load的操作.
Load:可以創建DataFrame;
Save:把DataFrame中的數據保存到文件或者說與具體的格式來指明我們要讀取的文件的類型以及與具體的格式來指出我們要輸出的文件是什麼類型。
SparkSQL的保存模式

 * SaveMode.ErrorIfExist ----->default 文件存在,保存失敗,有異常
 * SaveMode.Append      ----->append   在現有的基礎之上追加新的數據
 * SaveMode.Overwrite   ----->overwrite 重寫覆蓋現有目錄
 * SaveMode.Ignore      ----->ignore    忽略當前的保存操作

在這裏插入圖片描述
具體設置的話,使用mode()方法進行設置

//創建SparkSession 對象
SparkSession spark= SparkSession.builder().master("local")
    .appName("this.getClass().getSampleName()")
    .enableHiveSupport()
    .getOrCreate();
    
//重新加載以前的處理結果(可選)
spark.load("hdfs://node01.sun.com:9000/sql/res1")
spark.load("hdfs://node01.sun.com:9000/sql/res2", "json")

//讀取hdfs中json格式的數據
DataFrame df = spark.read().json("hdfs://node01.sun.com:9000/input/student.json"); 

//以JSON文件格式覆寫HDFS上的JSON文件
import org.apache.spark.sql.SaveMode._
result.save("hdfs://node01.sun.com:9000/sql/res2", "json" , Overwrite)

//直接保存
result.save("hdfs://node01.sun.com:9000/sql/res1")
result.save("hdfs://node01.sun.com:9000/sql/res2", "json")

//加載數據 默認加載的數據格式爲parquet
DateFrame df=spark.read().parquet("hdfs://node01.sun.com:9000/output/aaa");
//df.show();

//將數據追加寫入到hdfs文件系統中
df.write().mode(SaveMode.Append).save("hdfs://node01.sun.com:9000/output/aaa"); 

//將數據追加寫入到Hive表中(保存之前 表必須提前創建表)
spark.sql(select ... ).write().mode(SaveMode.Append).saveAsTable("庫名.表名"); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章