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) //结构打印


其它:

1 如何持久化(缓存、写到硬盘等)RDD

    rdd.persist() //功能很全

    rdd.cache() //到内存

2 如何使缓存失效

   rdd.unpersist() //持久化失效


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值