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详解相关推荐

  1. Spark RDD API详解(一) Map和Reduce

    来源:http://blog.csdn.net/jewes/article/details/39896301 本文由cmd markdown编辑,原始链接:https://www.zybuluo.co ...

  2. Spark RDD 论文详解(一)摘要和介绍

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  3. Spark RDD 论文详解(二)RDDs

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  4. Spark RDD 论文详解(五)实现

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  5. Spark RDD 论文详解(三)Spark 编程接口

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  6. Spark RDD 论文详解(七)讨论

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  7. Spark RDD 论文详解(四)表达 RDDs

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  8. Spark RDD使用详解1--RDD原理

    RDD简介 在集群背后,有一个非常重要的分布式数据架构,即弹性分布式数据集(Resilient Distributed Dataset,RDD).RDD是Spark的最基本抽象,是对分布式内存的抽象使 ...

  9. Spark RDD使用详解2--RDD创建方式

    RDD创建方式 1)从Hadoop文件系统(如HDFS.Hive.HBase)输入创建. 2)从父RDD转换得到新RDD. 3)通过parallelize或makeRDD将单机数据创建为分布式RDD. ...

最新文章

  1. Generic Data Access Objects -范型DAO类设计模式
  2. fatal: unable to access : The requested URL returned error: 403
  3. WIN10安装ubuntu全过程
  4. d3.js 旋转图形_变化莫测的图形推理,你能解出几种?
  5. macOS Big Sur正式版发布!Big Sur安装失败?更新时卡住了怎么办?
  6. 作为一个新手程序员该如何成长?
  7. stm32仿真不能设置断点_使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘
  8. Qt学习之如何启动和终止一个线程
  9. JavaScript 凭什么力压 Java、Python 横扫编程语言榜单?
  10. 计算同比和环比的区别_【数据说第三期】同比和环比数据分析时,有哪些需要注意的点?...
  11. 通用计算机遵循什么原则,计算机组成原理——计算机系统概述考研题
  12. YUV 格式与 RGB 格式的相互转换公式总结(C++版)
  13. 从贝叶斯模型(Bayes)到生成模型(Generative models)(生成式分类器,generative classifier)
  14. Phpmailer指定多位收件人
  15. libreoffice word转pdf时中文乱码问题解决
  16. Python 命令行参数:Argparse 与 Click
  17. 圆面积计算公式,这样理解起来超简单!
  18. 导入数据报错Packet for query is too large (20717492 4194304).
  19. 聘大佬、秀技术、搞开源,开发者说:小米「很技术」
  20. (转)《一定要争气》

热门文章

  1. 《web开发: Ajax 介绍》
  2. Hibiscus的脑机接口学习周报(2023/1/16~2023/1/22)
  3. Redis应用项目---抢红包功能(三)
  4. Unity3d多人在线教程
  5. 改变exe文件图标的方法
  6. 理财入门《小狗钱钱》阅读总结
  7. 第二证券|七位投资专家指点2023 战略性看好A股 市场将提供更多机会
  8. unity技美27——优化项目内美术3D,2D等资源,详解unity打包体的潜规则与案例
  9. 聊聊请教技术问题的正确方式
  10. pion-example-webrtc-applications示例学习