大数据IMF传奇行动绝密课程第16课:RDD实战(RDD基本操作实战及Transformation流程图)

RDD实战(RDD基本操作实战及Transformation流程图)

图16-1 RDD的Transformation和Action执行流程图
RDD有几种操作:Transformation(算子),Action(触发作业,的结果foreach、reduce、saveasTextFile等),Controller(性能和容错方面persist、cache、checkpoint)

reduce要符合交换律和结合律

foreach不可以进行模式匹配

collect把各个节点计算的结果汇总到Driver

package com.tom.spark

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

/**
  * 计算相同行出现的次数
  */
object TextLines {
  def main(args: Array[String]): Unit = {

    val conf = new SparkConf() //创建SparkConf对象
    conf.setAppName("Wow My First Spark App!") //设置应用程序的名称,在程序运行的监控界面可以看到
    conf.setMaster("local") //此时程序在本地运行,不需要安装Spark集群

    val sc = new SparkContext(conf) //创建SparkContext对象,通过传入SparkConf实例,来定制Spark运行的具体参数和配置信息
    val lines = sc.textFile("F:/helloSpark.txt") //通过HadoopRDD以及MapPartitionsRDD获取文件中每一行的内容本身
    val lineCount = lines.map(  (_, 1)) //每一行变成行的内容与1构成的Tuple
    val textLine = lineCount.reduceByKey(_ + _)
    textLine.collect.foreach( pair => println(pair._1 + ":" +pair._2)) //collect是把结果抓到Driver上,foreach的Array中只有一个元素,只不过元素
是一个Tuple。

  }
}

例子中Array中只有一个元素,只不过元素是一个Tuple。

shuffle触发新的stage,action触发job。saveAsTextJob内部有Action,所以会触发job
图16-2 常用transformations和actions

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值