您的位置:首页 > 大数据

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

2016-08-11 22:42 344 查看

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



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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spark
相关文章推荐