RDD学习

基本概念:

RDD( Resilient Distributed Datasets )弹性分布式数据集
- 在Spark中,对数据的操作不外乎创建RDD、转化已有RDD以及调用RDD操作求值
- RDD将操作分为两类:transformation与action。
- 无论执行了多少次transformation操作,RDD都不会真正执行运算,只有当action操作被执行时,运算才会触发。

创建RDD:

有三种方法:
- 从 Scala 集合中创建,通过调用 SparkContext#makeRDD 或 SparkContext#parallelize
- 加载外部数据来创建 RDD,例如从 HDFS 文件、mysql 数据库读取数据等
- 由其他 RDD 执行 transform 操作转换而来

Transformation操作:

从现有的数据集创建一个新的数据集。常用的操作:
- map(func)
- flatMap(func)
- mapPartitions(func)
- filter(func)
- union(otherDataset)
- distinct([numTasks])
- groupByKey(numTasks)
- reduceByKey(func,[numTasks]):对元素为KV对的RDD中Key相同的元素的Value进行reduce,因此,Key相同的多个元素的值被reduce为一个值,然后与原RDD中的Key组成一个新的KV对。
- sortByKay([ascending],[numTasks])
- sample(withReplacement,faction,seed)
- partitionBy(p:Partitioner[k]:RDD[K,V])

Action操作:

在数据集上运行计算后,返回一个值给驱动程序。常用的操作:
- reduce(func):
- collect():以数据的形式返回数据集中的所有元素给Driver程序,为防止Driver程序内存溢出,一般要控制返回的数据集大小
- count():
- first():
- take(n):
- takeSample(withReplacement,num,seed):
- saveAsTextFile(path):将最终的结果数据保存到指定的HDFS目录中
- saveAsSequenceFile(path):将最终的结果数据以sequence的格式保存到指定的HDFS目录中
- countByKey():作用于K-V类型的RDD上,统计每个key的个数,返回(K,K的个数)
- foreach(func):

五个特性:

参考资料:

RDD核心剖析http://mt.sohu.com/20160721/n460362468.shtml
spark编程指南 http://blog.javachen.com/2015/02/03/spark-programming-guide.html
spark手册http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.RDD
hHadoop shell 命令http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html
RDD操作:http://blog.csdn.net/xiefu5hh/article/details/51781074

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值