码迷,mamicode.com
首页 > 其他好文 > 详细

Spark RDD与共享变量简介

时间:2014-11-20 12:05:17      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:spark   rdd   共享变量   

hadoop有两个东东:HDFS(存储)和MapReduce(计算)。MapReduce计算比较慢,于是Spark(速度是MR的10~100倍)出现了。Spark有两个核心的概念:弹性分布式数据集RDD与共享变量。下面进行一下简单的介绍。

弹性分布式数据集(RDD)获得方式:1 并行化驱动程序内的集合; 2 从外部数据集加载。

1 并行化驱动程序内的集合code demo

val data = Array(1,2,3,4,5,6,7,8,9)   //普通数组

val distData = sc.parallelize(data)   //弹性分布式数组

val sum = distData.reduce((a,b) => a+b)    //并行求和

print(sum)    //打印

2 从外部数据集加载 code demo

  val awsFile = sc.textFile("/user/hdfs/aws/2012/total.txt") //获取弹性分布式文件

  val lineNum = awsFile.count()  //获取行数

print(lineNum)  //打印

Spark 共享变量分为两种:广播变量(broadcast variables)和累加器变量(accumulators variables)

1广播变量(broadcast variables)获取code demo

val broadcastVal = sc.broadcast(Array(1,2,3,45,6)) //得到broadcast变量

broadcastVal.value //变量取值

2累加器变量(accumulators variables) 获取 code demo

val accu = sc.accumulator(0,"firstaccumulator")  //得到accumulators变量

sc.parallelize(Array(1,2,3,45,6)).foreach(x => accu +=x)  //数组求和运算

print(accu.value)  //结构打印


Spark RDD与共享变量简介

标签:spark   rdd   共享变量   

原文地址:http://blog.csdn.net/hi_1234567/article/details/41309469

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!