通過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()val persons = item.map(p => person(p.name, p.age * 2))ds2.map(p => person(p.name,p.age*2)).show()
persons
}).show()
@testdef transform(): unit =
as[type]
運算元的主要作用是將弱型別的dataset
轉為強型別的dataset
,
@test用來按照條件過濾資料集def as(): unit =
@testdef filter(): unit =
groubykey
運算元的返回結果是keyvaluegroupeddataset
, 而不是乙個dataset
, 所以必須要先經過keyvaluegroupeddataset
中的方法進行聚合, 再轉回dataset
, 才能使用action
得出結果
@testdef groupbykey(): unit =
randomsplit
會按照傳入的權重隨機將乙個dataset
分為多個dataset
, 傳入randomsplit
的陣列有多少個權重, 最終就會生成多少個dataset
, 這些權重的加倍和應該為 1, 否則將被標準化
@testdef randomsplit(): unit =
orderby
配合column
的api
, 可以實現正反序排列
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
@testselect:選擇某些列出現在結果集中def collection(): unit =
selectexpr
:在sql
語句中, 經常可以在select
子句中使用count(age)
,rand()
等函式, 在selectexpr
中就可以使用這樣的sql
表示式, 同時使用select
配合expr
函式也可以做到類似的效果
@testwithcolumn:通過def select(): unit =
column
物件在dataset
中建立乙個新的列或者修改原來的列
withcolumnrenamed:修改列名
@testdrop:減掉某列def withcolumn(): unit =
@testgroupby:按給定的行進行分組def drop(): unit =
@testimportdef groupby(): unit =
spark.implicits._
@test
def column(): unit =
@testdef as(): unit =
val ds = seq(person("zhangsan", 12), person("zhangsan", 8), person("lisi", 15)).tods()like:模糊查詢;isin:是否含有;sort:排序//增加一列
ds.withcolumn("doubled",'age *2).show()
//模糊查詢
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行部落格量 篇 了解到的...