• <ins id="rwosr"><acronym id="rwosr"></acronym></ins>
      <kbd id="rwosr"></kbd>

      1. <tr id="rwosr"></tr>
        <code id="rwosr"></code> <output id="rwosr"><track id="rwosr"></track></output>

        <output id="rwosr"><track id="rwosr"></track></output>
        <sup id="rwosr"><track id="rwosr"></track></sup>
        <tr id="rwosr"><nobr id="rwosr"><delect id="rwosr"></delect></nobr></tr>

        <output id="rwosr"><track id="rwosr"></track></output>
        400-650-7353
        您所在的位置:首頁 > IT干貨資料 > 大數據 > 【大數據基礎知識】Spark常用算子(二)

        【大數據基礎知識】Spark常用算子(二)

        • 發布: 大數據培訓
        • 來源:大數據干貨資料
        • 2021-07-28 10:07:22
        • 閱讀()
        • 分享
        • 手機端入口

        1. mapValues

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

        (1)將[K,V] 格式的List轉換為[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算子回收,查看結果

        scala> rdd2.collect

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

        2. mapPartitions

        作用于RDD上的每一個分區,傳遞的函數相當于一個迭代器,有幾個分區,就會迭代幾次。

        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)

        })

        //打印輸出結果

        values.foreach(println)

        }

        }

        使用上面的代碼進行測試。輸出結果如下:

        可以看到,因為設置了3個分區,所以相應啟動了3個任務,在每個分區上進行迭代計算。

        3. filter

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

        另外fliter算子不會改變分區的數量,所以經過過濾后,即使某些分區沒有數據了,但是分區依然存在的。

        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算子按照指定條件進行排序。

        我們使用下面的代碼進行測試:

        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)

        }

        }

        升序輸出的結果如下:

        降序輸出的結果如下:

        有一點需要說明的是,輸出結果前,要使用collect算子把結果回收到本地。因為數據是分散在集群各節點的,如果不回收,看到的結果可能是不正確的。

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

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

        THE END  

        聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。

        1 您的年齡

        2 您的學歷

        3 您更想做哪個方向的工作?

        獲取測試結果
        • 大前端大前端
        • 大數據大數據
        • 互聯網營銷互聯網營銷
        • JavaJava
        • Linux云計算Linux
        • Python+人工智能Python
        • 嵌入式物聯網嵌入式
        • 全域電商運營全域電商運營
        • 軟件測試軟件測試
        • 室內設計室內設計
        • 平面設計平面設計
        • 電商設計電商設計
        • 網頁設計網頁設計
        • 全鏈路UI/UE設計UI設計
        • VR/AR游戲開發VR/AR
        • 網絡安全網絡安全
        • 新媒體與短視頻運營新媒體
        • 直播帶貨直播帶貨
        • 智能機器人軟件開發智能機器人
         

        快速通道fast track

        近期開班時間TIME

        两个人在线观看免费播放_国产精品天干天干_亚洲婷婷月色婷婷五月小蛇_男人的好小说全文免费阅读
      2. <ins id="rwosr"><acronym id="rwosr"></acronym></ins>
          <kbd id="rwosr"></kbd>

          1. <tr id="rwosr"></tr>
            <code id="rwosr"></code> <output id="rwosr"><track id="rwosr"></track></output>

            <output id="rwosr"><track id="rwosr"></track></output>
            <sup id="rwosr"><track id="rwosr"></track></sup>
            <tr id="rwosr"><nobr id="rwosr"><delect id="rwosr"></delect></nobr></tr>

            <output id="rwosr"><track id="rwosr"></track></output>
            <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>