RDD Programming Guide

1. spark的贡献:
   a) RDD 分布在各个节点上,并且可以并行运行; 
   b) 共享变量可以并行使用,如果spark在多个节点上并行运行某个函数,那么spark会把函数使用到的变量复制到每个节点上。spark支持两种贡献变量:i) 广播变量:将一个只读变量缓存到集群的每个节点上;ii) 累加变量:只允许add操作,用于计数求和

2. 使用spark之前,要先import两个类:

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
   a. SparkContext制定spark如何连接集群
   b.  SparkConf包含一些程序的设置信息
   c. 在建立 SparkContext对象之前,要先建立SparkConf对象
   d. 一个程序只能有一个SparkContext对象

val conf = new SparkConf().setAppName(appName).setMaster(master)
new SparkContext(conf)
   a. appName是这个程序的名字
   b. master

3. RDD支持两种操作

   a. transformations 从一个已有的RDD生成一个新的RDD
       i) map  对RDD内的每一个元素进行操作,返回一个新的RDD
       ii) transformation操作都是lazy模式,他们并不立马执行transformation操作,而是先记录对数据集的一系列操作。在执行一个需要执行的action操作时,才执行该数据集上所有的transformation操作,然后返回结果。这使得spark允许更加高效,例如,对一个数据集map操作之后使用reduce只返回结果,而不返回庞大的map运算的结果集。
   b. actions 把RDD扔进一个function,返回一个值
       i) reduce 对RDD的所有元素按指定的函数进行聚合,返回最终结果
      ii) 默认情况下,每个转换的RDD在执行action操作时都会重新计算,即使两个action操作使用同一个转换的RDD,该RDD也会重新计算。可使用persist方法将RDD缓存到内存。

val lines = sc.textFile("data.txt")
val lineLengths = lines.map(s => s.length)
val totalLength = lineLengths.reduce((a, b) => a + b)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值