Spark學習進度10 DS DF基礎操作

2022-01-09 23:26:50 字數 3928 閱讀 2819

通過flatmap可以將一條資料轉為乙個陣列, 後再展開這個陣列放入dataset

val ds1=seq("hello spark","hello hadoop").tods()

ds1.flatmap(item => item.split(" ")).show()

可以將資料集中每條資料轉為另一種形式

val ds2=seq(person("zhangsan",15),person("lisi",32)).tods()

ds2.map(p => person(p.name,p.age*2)).show()

val persons = item.map(p => person(p.name, p.age * 2))

persons

}).show()

@test

def transform(): unit =

as[type]運算元的主要作用是將弱型別的dataset轉為強型別的dataset,

@test

def as(): unit =

用來按照條件過濾資料集

@test

def filter(): unit =

groubykey運算元的返回結果是keyvaluegroupeddataset, 而不是乙個dataset, 所以必須要先經過keyvaluegroupeddataset中的方法進行聚合, 再轉回dataset, 才能使用action得出結果

@test

def groupbykey(): unit =

randomsplit會按照傳入的權重隨機將乙個dataset分為多個dataset, 傳入randomsplit的陣列有多少個權重, 最終就會生成多少個dataset, 這些權重的加倍和應該為 1, 否則將被標準化

@test

def randomsplit(): unit =

orderby配合columnapi, 可以實現正反序排列

val ds=seq(person("zhangsan",15),person("zhangsan",20),person("lisi",32)).tods()

ds.orderby('age.desc).show() //select * from .. order by .. desc

ds.sort('age.asc).show()
使用dropduplicates可以去掉某一些列中重複的行

@test

def dropduplicates(): unit =

根據所有列去重

ds.distinct().show()
差集,交集,並集,limit

@test

def collection(): unit =

select:選擇某些列出現在結果集中

selectexpr:在sql語句中, 經常可以在select子句中使用count(age),rand()等函式, 在selectexpr中就可以使用這樣的sql表示式, 同時使用select配合expr函式也可以做到類似的效果

@test

def select(): unit =

withcolumn:通過column物件在dataset中建立乙個新的列或者修改原來的列

withcolumnrenamed:修改列名

@test

def withcolumn(): unit =

drop:減掉某列

@test

def drop(): unit =

groupby:按給定的行進行分組

@test

def groupby(): unit =

import

spark.implicits._

@test

def column(): unit =

@test

def as(): unit =

val ds = seq(person("zhangsan", 12), person("zhangsan", 8), person("lisi", 15)).tods()

//增加一列

ds.withcolumn("doubled",'age *2).show()

like:模糊查詢;isin:是否含有;sort:排序

//

模糊查詢

ds.where('name like "zhang%").show()

//排序 ds.sort('age asc).show()

//列舉判斷

Spark學習進度 實戰測試

題目 該資料集包含了某大學計算機系的成績,資料格式如下所示 tom,database,80 tom,algorithm,50 tom,datastructure,60 jim,database,90 jim,algorithm,60 jim,datastructure,80 請根據給定的實驗資料,在...

Spark學習進度 RDD運算元

需求 資料格式如下 在 spark 中,其實最終 job3 從邏輯上的計算過程是 job3 job1.map filter,整個過程是共享記憶體的,而不需要將中間結果存放在可靠的分布式檔案系統中 線性回歸 val points sc.textfile map persist val w random...

學習進度條10

星期日星期一 星期二星期三 星期四星期五 星期六所花時間 包括上課 15 45 18 00 8 00 9 50 15 30 16 17 19 21 20 10 15 40 16 11 15 17 18 11 08 00 09 00 量 行 79行41行 0行0行 0行0行 0行部落格量 篇 了解到的...