val rdd = sc makeRDD(List(( "Tom ",100),( " "> 九色成人免费视频,麻豆mv在线观看,国产精品偷伦视频免费观看国产
400-650-7353
您所在的位置:首頁(yè) > IT干貨資料 > 大數(shù)據(jù) > 【大數(shù)據(jù)基礎(chǔ)知識(shí)】Spark常用算子(二)

【大數(shù)據(jù)基礎(chǔ)知識(shí)】Spark常用算子(二)

  • 發(fā)布: 大數(shù)據(jù)培訓(xùn)
  • 來(lái)源:大數(shù)據(jù)干貨資料
  • 2021-07-28 10:07:22
  • 閱讀()
  • 分享
  • 手機(jī)端入口

1. mapValues

mapValues算子 ,作用于 [K,V] 格式的RDD上,并且只對(duì)V(Value)進(jìn)行操作,Key值保持不變。

(1)將[K,V] 格式的List轉(zhuǎn)換為[K,V] 格式的RDD。

scala> val rdd = sc.makeRDD(List(("Tom",100),("Mike",80)))

rdd: org.apache.spark.rdd.RDD[(String, Int)] = ParallelCollectionRDD[2] at makeRDD at :24

(2)使用mapValues算子,將value值乘以100,key值保持不變

scala> val rdd2=rdd.mapValues(_*100)

rdd2: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[1] at mapValues at :26

(3)使用collect算子回收,查看結(jié)果

scala> rdd2.collect

res0: Array[(String, Int)] = Array((Tom,10000), (Mike,8000))

2. mapPartitions

作用于RDD上的每一個(gè)分區(qū),傳遞的函數(shù)相當(dāng)于一個(gè)迭代器,有幾個(gè)分區(qū),就會(huì)迭代幾次。

object Test1 {

def main(args: Array[String]): Unit = {

val conf=new SparkConf()

.setMaster("local[*]")

.setAppName(this.getClass.getSimpleName)

val sc=new SparkContext(conf)

val rdd=sc.makeRDD(List(1,2,3,4,5,6),3);

val values: RDD[Int] = rdd.mapPartitions(t => {

t.map(_ * 10)

})

//打印輸出結(jié)果

values.foreach(println)

}

}

使用上面的代碼進(jìn)行測(cè)試。輸出結(jié)果如下:

可以看到,因?yàn)樵O(shè)置了3個(gè)分區(qū),所以相應(yīng)啟動(dòng)了3個(gè)任務(wù),在每個(gè)分區(qū)上進(jìn)行迭代計(jì)算。

3. filter

filter算子過(guò)濾出所有的滿足條件的元素。

另外fliter算子不會(huì)改變分區(qū)的數(shù)量,所以經(jīng)過(guò)過(guò)濾后,即使某些分區(qū)沒(méi)有數(shù)據(jù)了,但是分區(qū)依然存在的。

scala> val rdd1 = sc.makeRDD(List(1,2,3,4,5,6),3)

rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[2] at makeRDD at :24

scala> val rdd2 = rdd1.filter(_>3)

rdd2: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[3] at filter at :26

scala> rdd2.partitions.size

res3: Int = 3

4. sortBy

sortBy算子按照指定條件進(jìn)行排序。

我們使用下面的代碼進(jìn)行測(cè)試:

object Test2 {

def main(args: Array[String]): Unit = {

val conf=new SparkConf()

.setMaster("local[*]")

.setAppName(this.getClass.getSimpleName)

val sc=new SparkContext(conf)

val rdd: RDD[(String, Int)] = sc.makeRDD(List(("Tom", 80), ("Mike", 90), ("Mary", 85),("John",60)))

//按value值升序排列

val res1: RDD[(String, Int)] = rdd.sortBy(_._2)

res1.collect.foreach(println)

// 按value值降序排列

val res2: RDD[(String, Int)] = rdd.sortBy(_._2, false)

res2.collect.foreach(println)

}

}

升序輸出的結(jié)果如下:

降序輸出的結(jié)果如下:

有一點(diǎn)需要說(shuō)明的是,輸出結(jié)果前,要使用collect算子把結(jié)果回收到本地。因?yàn)閿?shù)據(jù)是分散在集群各節(jié)點(diǎn)的,如果不回收,看到的結(jié)果可能是不正確的。

文章“【大數(shù)據(jù)基礎(chǔ)知識(shí)】Spark常用算子(二)”已幫助

>>本文地址:http://www.028benet.com/zhuanye/2021/69463.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷(xiāo)互聯(lián)網(wǎng)營(yíng)銷(xiāo)
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁(yè)設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開(kāi)發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開(kāi)發(fā)智能機(jī)器人
 

快速通道fast track

近期開(kāi)班時(shí)間TIME

主站蜘蛛池模板: 美女被爆羞羞视频网站视频| 美女主播免费观看| 中文字幕日韩一区二区不卡| 人妻少妇精品视频一区二区三区| 在线成年人网站| 日本漫画大全无翼无彩全番| 狠狠躁夜夜躁人人爽天天不 | 手机在线看片不卡中文字幕| 欧美精品高清在线观看| 99精品在线看| 久久久精品人妻一区二区三区| 人人妻人人澡av天堂香蕉| 国产成 人 综合 亚洲专| 成人男女网18免费视频| 永久免费AV无码网站在线观看 | 国内一级特黄女人精品片| 欧美与黑人午夜性猛交久久久| 翁与小莹浴室欢爱51章| 久久国产精品一区免费下载| 动漫精品一区二区三区四区| 国产毛片一级国语版| 在线观看国产精品日韩AV| 小时代1免费观看完整版| 日韩人妻无码精品专区| 欧美性活一级视频| 男女肉粗暴进来动态图| 色偷偷888欧美精品久久久| 欧美极品另类高清videos| 97av麻豆蜜桃一区二区| h在线观看免费| 中文字幕成人在线观看| 偷偷狠狠的日日高清完整视频| 国产丫丫视频私人影院| 国产三级电影网站| 国产乱子伦视频在线观看| 国产亚洲精品美女2020久久| 国产女人高潮抽搐喷水免费视频| 国产精品特黄一级国产大片| 色噜噜狠狠一区二区三区| 国产日产久久高清欧美一区| 国产精品露脸国语对白河北|