spark dataframe方法解釋


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*) 返回一個GroupedData類型,根據某些字段來匯總 8、 distinct 去重 返回一個dataframe類型 9、 drop(col: Column) 刪除某列 返回dataframe類型 10、 dropDuplicates(colNames: Array[String]) 刪除相同的列 返回一個dataframe 11、 except(other: DataFrame) 返回一個dataframe,返回在當前集合存在的在其他集合不存在的 12、 explode[A, B](inputColumn: String, outputColumn: String)(f: (A) ⇒ TraversableOnce[B])(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[B]) 返回值是dataframe類型,這個 將一個字段進行更多行的拆分 df.explode("name","names") {name :String=> name.split(" ")}.show(); 將name字段根據空格來拆分,拆分的字段放在names里面 13、 filter(conditionExpr: String): 刷選部分數據,返回dataframe類型 df.filter("age>10").show();  df.filter(df("age")>10).show();   df.where(df("age")>10).show(); 都可以 14、 groupBy(col1: String, cols: String*) 根據某寫字段來匯總返回groupedate類型   df.groupBy("age").agg(Map("age" ->"count")).show();df.groupBy("age").avg().show();都可以 15、 intersect(other: DataFrame) 返回一個dataframe,在2個dataframe都存在的元素 16、 join(right: DataFrame, joinExprs: Column, joinType: String) 一個是關聯的dataframe,第二個關聯的條件,第三個關聯的類型:inner, outer, left_outer, right_outer, leftsemi df.join(ds,df("name")===ds("name") and  df("age")===ds("age"),"outer").show(); 17、 limit(n: Int) 返回dataframe類型  去n 條數據出來 18、 na: DataFrameNaFunctions ,可以調用dataframenafunctions的功能區做過濾 df.na.drop().show(); 刪除為空的行 19、 orderBy(sortExprs: Column*) 做alise排序 20、 select(cols:string*) dataframe 做字段的刷選 df.select($"colA", $"colB" + 1) 21、 selectExpr(exprs: String*) 做字段的刷選 df.selectExpr("name","name as names","upper(name)","age+1").show(); 22、 sort(sortExprs: Column*) 排序 df.sort(df("age").desc).show(); 默認是asc 23、 unionAll(other:Dataframe) 合並 df.unionAll(ds).show(); 24、 withColumnRenamed(existingName: String, newName: String) 修改列表 df.withColumnRenamed("name","names").show(); 25、 withColumn(colName: String, col: Column) 增加一列 df.withColumn("aa",df("name")).show();
參考https://blog.csdn.net/sparkexpert/article/details/51042970?utm_source=copy 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM