spark sql是處理結構化的資料,可以儲存在二維表中,類似資料庫中的表一樣儲存資料
spark1.x
val sqlcontext = new sparkcontext(conf)
val sqlcontext = new sqlcontext(sc)
//將rdd和schema資訊關聯到一起,1,rdd和case class 2,rdd和structtype
//case class person將rdd中的資料轉換成case class 屬性相對應的型別,然後設定到case class中
val rdd:rdd[person] = ....
//將rdd轉換成dataframe
val df = rdd.todf
//對df進行操作(1,直接使用dataframe上的運算元dsl。2,寫sql)
//將df註冊成臨時表
df.registertemptable("t_person")
//執行sql
val result :dataframe = sqlcontext.sql("select * from t_person");
result.show()
spark2.x
//建立df
val df = spark.createdataframe(rdd[row], schema)
//dsl 和 sql
df.createtempview("v_user")
//執行sql
val result:dataframe = spark.sql("select * from t_user")
//執行action
result.show()
Spark SQL結構化資料處理
spark sql是spark框架的重要組成部分,主要用於結構化資料處理和對spark資料執行類sql的查詢。dataframe是乙個分布式的,按照命名列的形式組織的資料集合。一張sql資料表可以對映為乙個dataframe物件,dataframe是spark sql中的主要資料結構。sqlcont...
什麼是資料的結構化
資料的結構化,就是讓資料彼此之間產生聯絡,發生關係。例如鍊錶就是讓前乙個資料知道自己的前後的資料是什麼。樹就是讓資料知道自己下一層子孫是誰。這就是資料的結構化。通過聯絡有了先後的關係,形成了強關係的集合。而檔案可以看成集合,就是一大堆資料放在裡面,當你為檔案加了序號就是變成了資料結構,因為序號讓他們...
Try Catch結構化異常處理
try.catch.會損耗一定的效能,但不會造成效能瓶頸。建議使用try.catch。盡可能的考慮到可能存在的異常並進行處理,盡可能的少出現異常或不出現異常。不要濫用資料庫事務提高效能,這樣可能會造成併發訪問的效能問題或效能瓶頸。不要使用try.catch進行流程處理。如果可能的話,盡量要把迴圈寫在...