1. 程式人生 > >Spark SQL 的資料載入與儲存(load , )

Spark SQL 的資料載入與儲存(load , )

Spark SQL主要是操作DataFrame,DataFrame本身提供了save和load的操作.
Load:可以建立DataFrame;
Save:把DataFrame中的資料儲存到檔案或者說與具體的格式來指明我們要讀取的檔案的型別以及與具體的格式來指出我們要輸出的檔案是什麼型別。
SparkSQL的儲存模式

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

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

SparkConf conf = new SparkConf().setAppName("SaveMode").setMaster("local");
//JavaSparkContext sc = new JavaSparkContext(conf);
SQLContext sc= new SQLContext(sc);

//重新載入以前的處理結果(可選)
sc.load("hdfs://node01.sun.com:9000/sql/res1")
sc.load("hdfs://node01.sun.com:9000/sql/res2", "json")

//讀取hdfs中json格式的資料
DataFrame df = sc.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=sc.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");