Spark RDD API详解
1. RDD简单介绍
RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序所做的无非是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作从而得到结果。本文为第一部分,将介绍Spark RDD中与Map和Reduce相关的API中。
2. RDD的创建
RDD可以从普通数组创建出来,也可以从文件系统或者HDFS中的文件创建出来。
- 从普通数组创建RDD,里面包含了1到9这9个数字,它们分别在3个分区中
scala> val a = sc.parallelize(1 to 9, 3)
a: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[1] at parallelize at <console>:12
- 读取文件README.md来创建RDD,文件中的每一行就是RDD中的一个元素
scala> val b = sc.textFile("README.md")
b: org.apache.spark.rdd.RDD[String] = MappedRDD[3] at textFile at <console>:12
3. map
map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD。 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。
scala> val a = sc.parallelize(1 to 9, 3)
scala> val b = a.map(x => x*2)
scala> a.collect
res10: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
scala> b.collect
res11: Array[Int] = Array(2, 4, 6, 8, 10, 12, 14, 16, 18)
上述例子中把原RDD中每个元素都乘以2来产生一个新的RDD。
持续更新中……
Spark RDD API详解相关推荐
- Spark RDD API详解(一) Map和Reduce
来源:http://blog.csdn.net/jewes/article/details/39896301 本文由cmd markdown编辑,原始链接:https://www.zybuluo.co ...
- Spark RDD 论文详解(一)摘要和介绍
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark RDD 论文详解(二)RDDs
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark RDD 论文详解(五)实现
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark RDD 论文详解(三)Spark 编程接口
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark RDD 论文详解(七)讨论
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark RDD 论文详解(四)表达 RDDs
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark RDD使用详解1--RDD原理
RDD简介 在集群背后,有一个非常重要的分布式数据架构,即弹性分布式数据集(Resilient Distributed Dataset,RDD).RDD是Spark的最基本抽象,是对分布式内存的抽象使 ...
- Spark RDD使用详解2--RDD创建方式
RDD创建方式 1)从Hadoop文件系统(如HDFS.Hive.HBase)输入创建. 2)从父RDD转换得到新RDD. 3)通过parallelize或makeRDD将单机数据创建为分布式RDD. ...
最新文章
- Generic Data Access Objects -范型DAO类设计模式
- fatal: unable to access : The requested URL returned error: 403
- WIN10安装ubuntu全过程
- d3.js 旋转图形_变化莫测的图形推理,你能解出几种?
- macOS Big Sur正式版发布!Big Sur安装失败?更新时卡住了怎么办?
- 作为一个新手程序员该如何成长?
- stm32仿真不能设置断点_使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘
- Qt学习之如何启动和终止一个线程
- JavaScript 凭什么力压 Java、Python 横扫编程语言榜单?
- 计算同比和环比的区别_【数据说第三期】同比和环比数据分析时,有哪些需要注意的点?...
- 通用计算机遵循什么原则,计算机组成原理——计算机系统概述考研题
- YUV 格式与 RGB 格式的相互转换公式总结(C++版)
- 从贝叶斯模型(Bayes)到生成模型(Generative models)(生成式分类器,generative classifier)
- Phpmailer指定多位收件人
- libreoffice word转pdf时中文乱码问题解决
- Python 命令行参数:Argparse 与 Click
- 圆面积计算公式,这样理解起来超简单!
- 导入数据报错Packet for query is too large (20717492 4194304).
- 聘大佬、秀技术、搞开源,开发者说:小米「很技术」
- (转)《一定要争气》