**sparksql 中DataFrame 的函式**
Action 操作 1、 collect() ,返回值是一個數組,返回dataframe集合所有的行 2、 collectAsList() 返回值是一個java型別的陣列,返回dataframe集合所有的行 3、 count() 返回一個number型別的,返回dataframe集合的行數 4、 describe(cols: String*) 返回一個通過數學計算的類表值(count, mean, stddev, min, and max),這個可以傳多個引數,中間用逗號分隔,如果有欄位為空,那麼不參與運算,只這對數值型別的欄位。例如df.describe(“age”, “height”).show() 5、 first() 返回第一行 ,型別是row型別 6、 head() 返回第一行 ,型別是row型別 7、 head(n:Int)返回n行 ,型別是row 型別 8、 show()返回dataframe集合的值 預設是20行,返回型別是unit 9、 show(n:Int)返回n行,,返回值型別是unit 10、 table(n:Int) 返回n行 ,型別是row 型別
dataframe的基本操作 1、 cache()同步資料的記憶體 2、 columns 返回一個string型別的陣列,返回值是所有列的名字 3、 dtypes返回一個string型別的二維陣列,返回值是所有列的名字以及型別 4、 explan()列印執行計劃 物理的 5、 explain(n:Boolean) 輸入值為 false 或者true ,返回值是unit 預設是false ,如果輸入true 將會列印 邏輯的和物理的 6、 isLocal 返回值是Boolean型別,如果允許模式是local返回true 否則返回false 7、 persist(newlevel:StorageLevel) 返回一個dataframe.this.type 輸入儲存模型型別 8、 printSchema() 打印出欄位名稱和型別 按照樹狀結構來列印 9、 registerTempTable(tablename:String) 返回Unit ,將df的物件只放在一張表裡面,這個表隨著物件的刪除而刪除了 10、 schema 返回structType 型別,將欄位名稱和型別按照結構體型別返回 11、 toDF()返回一個新的dataframe型別的 12、 toDF(colnames:String*)將引數中的幾個欄位返回一個新的dataframe型別的, 13、 unpersist() 返回dataframe.this.type 型別,去除模式中的資料 14、 unpersist(blocking:Boolean)返回dataframe.this.type型別 true 和unpersist是一樣的作用false 是去除RDD
整合查詢: 1、 agg(expers:column*) 返回dataframe型別 ,同數學計算求值 df.agg(max(“age”), avg(“salary”)) df.groupBy().agg(max(“age”), avg(“salary”)) 2、 agg(exprs: Map[String, String]) 返回dataframe型別 ,同數學計算求值 map型別的 df.agg(Map(“age” -> “max”, “salary” -> “avg”)) df.groupBy().agg(Map(“age” -> “max”, “salary” -> “avg”)) 3、 agg(aggExpr: (String, String), aggExprs: (String, String)) 返回dataframe型別 ,同數學計算求值 df.agg(Map(“age” -> “max”, “salary” -> “avg”)) df.groupBy().agg(Map(“age” -> “max”, “salary” -> “avg”)) 4、 apply(colName: String) 返回column型別,捕獲輸入進去列的物件 5、 as(alias: String) 返回一個新的dataframe型別,就是原來的一個別名 6、 col(colName: String) 返回column型別,捕獲輸入進去列的物件 7、 cube(col1: String, cols: String