SparkCore编程RDD

RDD概述

中文名为弹性分布式数据集,是数据处理基本单位。代表一个弹性的,不可变,可分区,里面的数据可并行计算的集合。

RDD和Hadoop MR 的区别:

  1. RDD是先明确数据处理流程,数据在行动算子执行前实际上并未被修改
  2. MR本质上是摸石头过河,每一步操作时,数据本体已经被修改了,无法恢复。

RDD特性:

  • 一组分区:标记数据是哪个分区的
  • 一个计算每个分区的函数
  • RDD之间的依赖关系
  • 一个分区器:即RDD的分片函数
  • 一个优先列表:移动数据不如移动计算

Spark编程

RDD的创建

  1. 使用IDEA创建一个spark项目
  2. 添加spark-core_2.12依赖,版本3.3.1
  3. 在setting-plugins搜索Scala插件,方便查询Scala代码
  4. 如果代码出现winutils找不到异常时,需要配置一下windows对于Hadoop的依赖
  5. 开始编程
    • 创建RDD_init的class文件,定义main方法
    • new JavaSparkContext(), 设置SparkConf().setMaster("local[*]").setAppName("rdd");得到sc
    • sc获取RDD的方法
      • textFile(文件路径)
      • parallelize(list集合)

分区

为了能够看到分区的情况,不使用collect收集,而是采用saveAsTextFile方法来看并行操作的具体情形。local[2]代表并行度,也会影响文件的数量,这个是分区数的上限。也可以通过parallelize(list, 分区数)方法来控制分区数量,而不影响分区的上限。

内存数据分区策略:如果数据个数无法被分区数整除,多出来的数据优先分配给后面的分区。

def positions()={val start = ((下标*数据个数)/分区数).toIntval end = ((下标+1)* 数据个数/ 分区数).toInt
}

从集合获取数据时,负载均衡,尽量保证每个分区的数据数量是一致的,后面的分区的数据会比前面的多。

MR和spark的切分区别:

  • MR希望每个任务跑到数据量级尽量多,因为MR底层是单线程多进程的,并发没有那么方便。
  • spark希望跑到任务尽量多,即负载均衡,并发量高,因为spark底层是多进程多线程的。

文件数据分区策略:分区数量最低为2,最高为环境CPU数量。分区数量根据文件大小来计算得出,跟MR切片规则很类似。大致是这样:

  • goalS ize = 文件大小(字节) / 分区数量,最小为1
  • 分区数量 = 文件大小 / goalSize

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android MediaCodec 框架 基于codec2

系列文章的目的是什么? 粗略: 解码需要哪些基础的服务?标准解码的调用流程?各个流程的作用是什么?解码框架的层次?各个层次的作用? 细化: 解码参数的配置?解码输入数…

WPF中在MVVM模式下实现导航功能

WPF中在MVVM模式下实现导航功能 一、利用TabControl 使用场景&#xff1a;项目小&#xff0c;不用考虑内存开销的问题。 实现方式1-手动指定ViewModel 分别定义3个UserControl作为View用于演示 <UserControl...><Grid><StackPanel Orientation"Vertic…

机器视觉、图像处理和计算机视觉:概念和区别

机器视觉、图像处理和计算机视觉&#xff1a;概念和区别 机器视觉、图像处理和计算机视觉是相关但有区别的概念。 机器视觉主要应用于工业领域&#xff0c;涉及图像感知、图像处理、控制理论和软硬件的结合&#xff0c;旨在实现高效的运动控制或实时操作。 图像处理是指利用…

竞赛 深度学习YOLO抽烟行为检测 - python opencv

文章目录 1 前言1 课题背景2 实现效果3 Yolov5算法3.1 简介3.2 相关技术 4 数据集处理及实验5 部分核心代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习YOLO抽烟行为检测 该项目较为新颖&#xff0c;适合作为竞赛课…

ios UIDocumentPickerViewController 实现TEXT、DOC、PDF等文档读取

文章目录 一、前言二、iCould相关配置三、功能实现3.1 UIDocumentPickerViewController 选取控制器3.2 读取文件一、前言 最近正在研发的项目有一个需求: 允许用户将iCloud中的文档上传,实现文件的流转。 以前接触的项目对于资料类的上传大多是仅限于图片与视频。对于文档类…

【系统架构设计】架构核心知识: 1 构件和中间件

目录 一 构件 1 构件的特性 2 构件、对象和模块的对比 3 构件的复用

vue中获取复选框是否被选中的值、如何用JavaScript判断复选框是否被选中

一、方法介绍 第一种方法&#xff1a;通过获取dom元素&#xff0c;getElementById、querySelector、getElementsByName、querySelectorAll&#xff08;需要遍历&#xff0c;例如&#xff1a;for循环&#xff09; 第二种是用v-model在input复选框上绑定一个变量&#xff0c;通过…

同构字符串(C++解法)

题目 给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符&#xff0c;同时不改变字符的顺序。不同字符不能映射到同一个字符上&#xf…

辅助驾驶功能开发-功能对标篇(14)-NOA领航辅助系统-集度

1.横向对标参数 厂商集度车型ROBO-01上市时间2023方案12V5R2L+1DMS摄像头前视摄像头3侧视摄像头4后视摄像头1环视摄像头4DMS摄像头1雷达毫米波雷达54D毫米波雷达/超声波雷达12激光雷达</

网页构造与源代码

下载google浏览器 设置打开特定网址&#xff1a;www.baidu.com 查看网页或元素源代码 网页右键选择“检查”查看源代码 网页源代码 元素源代码

Yolov安全帽佩戴检测 危险区域进入检测 - 深度学习 opencv 计算机竞赛

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; Yolov安全帽佩戴检测 危险区域进入检测 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&am…

轻重链剖分+启发式合并专题

Codeforces-741D(Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths) 一棵根为1 的树&#xff0c;每条边上有一个字符&#xff08;a-v共22种&#xff09;。 一条简单路径被称为Dokhtar-kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串。 求每个子树中…

6.DApp-用Web3实现前端与智能合约的交互

题记 用Web3实现前端与智能合约的交互&#xff0c;以下是操作流程和代码。 准备ganache环境 文章地址&#xff1a;4.DApp-MetaMask怎么连接本地Ganache-CSDN博客 准备智能合约 文章地址&#xff1a; 2.DApp-编写和运行solidity智能合约-CSDN博客 编写index.html文件 <!…

java学生通讯录管理系统

设计要求 本课程设计&#xff0c;涉及输入输出、GUI设计、数据库操作等本课程重要概念和编程技能&#xff0c;全面巩固和加深学生对java程序设计的相关概念的理解&#xff0c;全面强化java编程技能&#xff0c;培养学生综合运用所学知识和技能分析问题和解决问题的能力。培养学…

Linux命令(102)之less

linux命令之less 1.less介绍 linux命令less是一个文本文件查看工具&#xff0c;它以一种交互的方式&#xff0c;逐页地显示文本文件的内容&#xff0c;并且可以在文件中进行搜索等定位 2.less用法 less [参数] filename less参数 参数说明-N显示每行的行号-i忽略搜索时的大…

Windows工业三防平板全功能NFC近距离感应一维/二维扫描

Windows系统工业三防平板电脑是一种在智慧工厂仓储物流、MES数采、车载设备、设备检测、自动化控制等领域广泛应用的先进设备。此外&#xff0c;它还在公共服务领域&#xff0c;如高速交通、物流运输、电力检测、公务执法、银行金融、船舶装备、户外勘测、建筑工程、汽车检测、…

测试中Android与IOS分别关注的点

目录 1、自身不同点 2、测试注重点 3、其他测试点 主要从本身系统的不同点、系统造成的不同点、和注意的测试点做总结 1、自身不同点 研发商&#xff1a;Adroid是google公司做的手机系统&#xff0c;IOS是苹果公司做的手机系统   开源程度&#xff1a;Android是开源的&a…

[晕事]今天做了件晕事24;GCC -W

gcc的编译选项&#xff0c;有几个比较让人搞混&#xff1a; -w Inhibit all warning messages. &#xff1b; 这个是禁止所有的警告消息 -W的含义是&#xff1a;-Wextra&#xff1b;着-W是建议不要再使用了&#xff0c;因为字面意思与含义不符。而且&#xff1a;https://www.…

【已解决】pyinstaller 将程序打包成 exe 文件后,无法保存视频或者保存的视频为空文件

这里写自定义目录标题 问题描述解决方法方法一方法二 参考 问题描述 使用pyinstaller将python程序打包为exe文件&#xff0c;其中包含保存视频的代码。直接运行脚本时&#xff0c;程序能够正确的保存视频。但是通过pyinstaller打包成exe文件后&#xff0c;exe文件无法保存视频…

网工记背命令(6)----链路聚合配置

目录 1.配置手工负载分担模式链路聚合 2.配置LACP模式的链路聚合 3.HUAWEI设备与C厂商设备对接 链路聚合&#xff08;Link Aggregation&#xff09;是将多条物理链路捆绑在一起成为一条逻辑链路&#xff0c;从而增加链路带 宽的技术。 常用配置命令 1、执行命令 interface …