标签:val 链表 disk ras shell 实用 proc and sso
RDD是spark最重要的抽象。spark统一建立在抽象的RDD之上。设计一个通用的编程抽象,使得spark可以应对各种场合的大数据情景。RDD模型将不同的组件融合到一起,选用其中的几个/所有,可以应付各种不同的场景。解决了mr的缺陷
1. 弹性分布式数据集Resilient Distributed Dataset。
2. 只读分区数据集,final修饰的
3. 一个分布式的数据集合,是spark中的核心,spark的操作都是围绕RDD展开的。
4. 真正的运算是在各个计算节点。
5. 当某个RDD操作丢失的时候,可以很快恢复。
lines = sc.textFile("文件路径")
// 可以指定分片的个数
lines = sc.textFle("路径",3)
// 返回一个文件名:文件内容的二元组
lines = sv.whileFile("路径")
val lines = sc.parallelize(list["name","age"])
map RDD.map(fun) 将函数应用于每个元素,结果返回一个RDD包含每个元素的函数处理结果
flatmap RDD.flatmap(fun) 同map,结果返回一个包含所有处理结果的整体。生成的分片数不变,只是在逻辑上成一个整体
filter RDD.filter(fun) 过滤掉不符合要求的数据
distinct RDD.distinct() 去重,需要shuffle代价大
union RDD.union(RDD1) 两个RDD求并集
intersection RDD. intersection(RDD1) 两个RDD求交集
substract RDD.substract(RDD1) 从RDD中移除RDD1的内容
cartesian RDD.cartesian(RDD1) 生成RDD与RDD1的笛卡尔积
pipe RDD.pipe("shell命令") 利用linux中的shell语言,对数据操作。
zip RDD.zip(RDD1) 将RDD和RDD1组成一个kv格式的新RDD
collect() RDD.collect() 返回RDD中的所有元素。只能计算小规模的RDD,否则要shuffle代价大
count() RDD.count() 统计RDD中元素的个数
countByVale() RDD.countByValue() 每个元素在RDD中出现的次数。
take() RDD.take(n) 返回RDD中的n个元素
top() RDD.top(N) 返回RDD中的前N个元素
takeOrdered() RDD.takeOrdered(n) 按照要求的顺序返回前n个元素
takeSample() RDD.takeSample(n) 从RDD中任意返回n个元素
reduce() RDD.reduce(fun) 并行整合RDD中所有的元素
fold() RDD.fold(num)(fun) 提供初始值,的reduce
aggregate() RDD.aggregate() ?????????
foreach() RDD.foreach(fun) 对RDD中的 每个元素使用给定的函数
RDD.saveAsTextFile("路径")
级别 | 描述 |
---|---|
MEMORY_ONLY | 只放在内存,超过的部分丢弃,不存储(默认的级别) |
MEMORY_AND_DISK | 放在内存,超过的放在磁盘上 |
MEMORY_ONLY_SER | RDD作为序列化的对象存储 |
MEMORY_AND_DISK_SER | 超过的部分放在disk上 |
DISK_ONLY | 只放在disk上 |
标签:val 链表 disk ras shell 实用 proc and sso
原文地址:http://blog.csdn.net/u011283591/article/details/66972088