日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

大數(shù)據(jù)IMF傳奇行動絕密課程第16課:RDD實戰(zhàn)

 看風景D人 2019-02-24

圖16-1 RDD的Transformation和Action執(zhí)行流程圖
RDD有幾種操作:Transformation(算子),Action(觸發(fā)作業(yè),的結果foreach、reduce、saveasTextFile等),Controller(性能和容錯方面persist、cache、checkpoint)

reduce要符合交換律和結合律

foreach不可以進行模式匹配

collect把各個節(jié)點計算的結果匯總到Driver

package com.tom.spark

import org.apache.spark.{SparkConf, SparkContext}

/**
  * 計算相同行出現(xiàn)的次數(shù)
  */
object TextLines {
  def main(args: Array[String]): Unit = {

    val conf = new SparkConf() //創(chuàng)建SparkConf對象
    conf.setAppName("Wow My First Spark App!") //設置應用程序的名稱,在程序運行的監(jiān)控界面可以看到
    conf.setMaster("local") //此時程序在本地運行,不需要安裝Spark集群

    val sc = new SparkContext(conf) //創(chuàng)建SparkContext對象,通過傳入SparkConf實例,來定制Spark運行的具體參數(shù)和配置信息
    val lines = sc.textFile("F:/helloSpark.txt") //通過HadoopRDD以及MapPartitionsRDD獲取文件中每一行的內(nèi)容本身
    val lineCount = lines.map(  (_, 1)) //每一行變成行的內(nèi)容與1構成的Tuple
    val textLine = lineCount.reduceByKey(_ + _)
    textLine.collect.foreach( pair => println(pair._1 + ":" +pair._2)) //collect是把結果抓到Driver上,foreach的Array中只有一個元素,只不過元素
是一個Tuple。

  }
}

例子中Array中只有一個元素,只不過元素是一個Tuple。

shuffle觸發(fā)新的stage,action觸發(fā)job。saveAsTextJob內(nèi)部有Action,所以會觸發(fā)job
圖16-2 常用transformations和actions

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多