当前位置: 首页 > news >正文

RDD基础知识

RDD(弹性分布式数据集)作为spark的核心概念,RDD其实就是一个不可变的分布式的元素集合

什么是弹性: 在任何实收都能进行重新计算,当保存RDD数据的一台机器挂了,spark还可以使用这种特性来重新计算出丢掉的分区,对用户也完全透明。

每个RDD都被分为多个分区,这些分区运行在集群中的不同节点

创建RDD的方式有多种,一是主要读取一个外部的数据集,二是在驱动器程序中的对象集合。

创建出RDD之后,支持两种类型的操作: transformation和action操作。转化操作由一个RDD生产一个新的RDD,但只会惰性计算这些RDD,action操作才是真正计算最终结果的。

spark的RDD会在每次对他们进行action操作时重新计算,如果想在多个action操作中重用同一个RDD,可以使用cache()或是RDD.persist()来将这个RDD缓存起来。我们也可以将数据缓存到不同的地方,比如,磁盘或是内存。如果所有操作都结束,则可以调用stop()操作结束。

eg 举例如下:
1 >>> val rdd = sc.parallelize(Seq(("hadoop",3), ("spark",2), ("hive",1), ("hbase",3), ("java",2)))
2 >>> val resRdd= rdd.filter(_._2 == 3)
3 >>> resRdd.persist()
4 >>> resRdd.count()
5 >>> resRdd.first()

大概的spark程序工作方式:

  1. 从外部数据集或驱动程序中创建出RDD.
  2. 使用filter(),flatMap()等transformation操作对RDD进行转化,定义新的RDD.
  3. 将重用的中间结果RDD进行cache()或是persist()操作(cache()和使用默认级别的persist()操作是相同意思的)。
  4. 使用action操作来触发一次并行计算。

http://spark.apachecn.org/docs/cn/2.2.0/sql-programming-guide.html
spark中文官网(学习spark最好的方式就是读官方文档)

转载于:https://www.cnblogs.com/yixl/p/10236587.html

相关文章:

  • 使用
  • JuJu团队1月7号工作汇报
  • IP地址专题七:子网掩码及主机段的算法
  • mysql忘记密码(跳过权限修改)
  • java中date日期格式的各种转换
  • HMM学习
  • Exchange Server 2007安装与配置(待續文章)
  • Vue移动端焦点状态跳转页面,焦点和键盘不消失的问题
  • request获取数据3种方法
  • 对我影响最大的三位老师
  • Oracle分页
  • Java 内省机制
  • 配置企业的三层交换和DHCP的搭建
  • springboot yml 文件配置oracle,提示账号密码错误
  • ElasticSearch集群搭建
  • echarts的各种常用效果展示
  • vue--为什么data属性必须是一个函数
  • 从零开始在ubuntu上搭建node开发环境
  • 记一次用 NodeJs 实现模拟登录的思路
  • 解析带emoji和链接的聊天系统消息
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 数据仓库的几种建模方法
  • 一些关于Rust在2019年的思考
  • 源码安装memcached和php memcache扩展
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​Java并发新构件之Exchanger
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (论文阅读30/100)Convolutional Pose Machines
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (小白学Java)Java简介和基本配置
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)菜鸟学数据库(三)——存储过程
  • ./configure,make,make install的作用
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET CF命令行调试器MDbg入门(一)
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET Project Open Day(2011.11.13)
  • .net 使用ajax控件后如何调用前端脚本
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians