<ins id="6k1m6"><video id="6k1m6"></video></ins>

    <ruby id="6k1m6"><option id="6k1m6"></option></ruby>
    <code id="6k1m6"><option id="6k1m6"></option></code>
  1. <output id="6k1m6"></output>
    400-650-7353
    您所在的位置:首頁(yè) > IT干貨資料 > 大數據 > 【大數據基礎知識】Spark算子介紹及map算子的使用

    【大數據基礎知識】Spark算子介紹及map算子的使用

    進(jìn)入到大數據圈的朋友們都對Spark的強大功能有所了解,那么提到Spark,我們就想到了其中的算子,Spark的強大功能如何實(shí)現,自然離不開(kāi)其中的算子了。怎么理解這些算子呢,我們可以簡(jiǎn)單把它理解為方法或函數,Spark已經(jīng)定義好了很多功能強大的方法或函數,在這里稱(chēng)為算子。

    Spark中的算子分為兩類(lèi):一是轉換類(lèi)算子(Transformation),二是行動(dòng)類(lèi)算子(Action)。轉換類(lèi)算子執行后得到新的RDD,并且不會(huì )立即執行,需要有行動(dòng)類(lèi)算子觸發(fā)才能執行。行動(dòng)類(lèi)算子是立即執行的,并且執行后得到的不再是RDD。

    這次,我們用命令行的方式先來(lái)看看這些算子如何使用。

    首先,我們進(jìn)入spark-shell命令行方式:

    [root@node2 ~]# spark-shell --master spark://node1:7077

    執行上面命令后,就進(jìn)入了命令行方式:

    此時(shí),我們就可以測試使用Spark中的算子了。

    有一點(diǎn)我們要注意的 ,這些算子都是作用在RDD上,所以我們首先要得到RDD。

    map算子

    map算子實(shí)現的是一一映射。

    對某一個(gè)rdd執行map,rdd中每一條數據都會(huì )執行操作。也就是說(shuō)rdd中有幾條數據,就會(huì )被迭代幾次。

    執行map算子后返回值的數據類(lèi)型,取決于給map傳遞的函數的返回值類(lèi)型。

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

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

    首先,我們通過(guò)makeRDD,將一個(gè)list轉換成RDD,并且指定分區數為3。

    scala> val rdd1=rdd.map(_>5)

    rdd1: org.apache.spark.rdd.RDD[Boolean] = MapPartitionsRDD[4] at map at :26

    執行map算子,傳遞的函數是判斷元素是否大于5,結果得到一個(gè)新的的RDD,并且元素類(lèi)型是Boolean類(lèi)型。由此我們也可以看到,結果RDD的元素類(lèi)型就是由傳入map算子的函數決定的。

    此時(shí),實(shí)際上還沒(méi)有真正執行,我們需要使用一個(gè)Action算子觸發(fā)執行。

    scala> rdd1.collect

    [Stage 0:===================> res0: Array[Boolean] = Array(false, false, false, false, false, true, true)

    我們使用collect算子觸發(fā)執行,得到結果。Collect算子是Action類(lèi)算子,是將結果回收到客戶(hù)端。在生產(chǎn)環(huán)境中,要慎用此算子。我們測試中因為數據量非常小,用此算子是沒(méi)有問(wèn)題的。

    文章“【大數據基礎知識】Spark算子介紹及map算子的使用”已幫助

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

    THE END  

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

    1 您的年齡

    2 您的學(xué)歷

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

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

    快速通道fast track

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

    两个人在线观看免费播放_国产精品天干天干_亚洲婷婷月色婷婷五月小蛇_男人的好小说全文免费阅读