Spark第二课RDD的详解
1.前言
RDD
JAVA中的IO
1.小知识点穿插
1. 装饰者设计模式
装饰者设计模式:本身功能不变,扩展功能.
举例: 数据流的读取
一层一层的包装,进而将功能进行进一步的扩展
2.sleep和wait的区别
本质区别是字体不一样,sleep斜体,wait正常
斜体是静态方法
sleep:静态方法,和对象无关
t1.sleep 当前休眠的不是t1线程,而是调用方法的线程,如果在主线程运行,调用的就是主线程,
与对象无关,得不到对象锁
wait :成员方法 ,与对象相关
t2.wait 当前等待的线程是t2线程
能得到对象锁,能释放.
空指针异常:调用一个为null的对象的成员属性或成员方法,会发生空指针异常,
注意 是成员的 ,如果是静态的,与动态就无关了.
为什么会出现空指针?
报错的时候,给的是.class的位置,不一定完全对应java的问题,
去看字节码Terminal 输入javap -c +名称 -v的话,更详细
intValue是一个成员方法,但是此时age没有赋值,是null, 空对象的成员方法调用
this与super
this是当前方法的局部变量,
super只在编译时出现,this可以在运行时出现
3.关于import *
这个是给javac 用的,让javac自动去找
编译成.class 时,需要什么就导什么,而不是全部都导
2.正题
1.注意点 切片与读取的不同
HADOOP切片逻辑是均分
但是读取数据进行分区保存时,不能均分,
HADOOP是按行读,而不是字节,
为啥HADOOP按行读取,一行就是一个业务数据
但是切片是均分,指的是字节均分
2.hadoop读取按照偏移量读取,同一个数据的偏移量不能被重复读取,也就是必须重来?
5+2+1+2+6 =16
4个分区,能均分
4个分区,读按行读,所以最后一个是空 数据倾斜
2.转换算子
1.是什么?
Transformation转换算子
转换方法
算子是个啥?
认知心理学 解决问题的状态: 初始状态(提出问题) -> 解决 不强调过程
转换:一个东西变成另外一个东西
所谓的转换算子,就是调用RDD对象的功能(方法)转变成一个新RDD
元组,需要先知道一共多少个数据, 默认元组最多为22个
元组是专门用来存放无关数据的,不同数据类型也能存
取的时候
如果元组中元素就两个,称为对偶元组,也称为键值对
RDD不保存(处理后的)数据,RDD是容器,但是容器是工具,存储数据的,是数组,链表,而不是容器
加这个才能将类中的方法可以进行函数式
只需要考虑方法输入输出
因为必须有返回值,马丁知道,所以return 可以省略
想省略参数,得有方法
如果一个整体需要拆分成多个个体,这种操作,叫做扁平化
Flat就是变
3.map
一个输入 一个输出 不能一个输入多个输出
package com.atguigu.core.rdd.transform;import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;import java.util.Arrays;
import java.util.List;public class SparkRDDmap {public static void main(String[] args) {JavaSparkContext sc = new JavaSparkContext("local[*]","SPARK_mapT");List<Integer> dataList = Arrays.asList(1,2,3,4);JavaRDD<Integer> rdd = sc.parallelize(dataList, 3);JavaRDD<Integer> rddMap = rdd.map(in -> in * 2);// 用流的形式进行操作rddMap.collect().forEach(System.out::println);sc.stop();}
}
4.flatMap
1.flatMap与Map的区别
map:一个输入,一个输出 做不到一个输入多个输出 也做不到多个输入少个输出
flatmap 扁平化 一个输入 n个输出 n(0和任意正整数)
整体拆成个体,但是每个个体都要使用
注意,这里的return 是泛型(不加也行) ,也可以是迭代器
5.分组
1.注意点 一个组的数据必定在一个分区
分组不是分区,分组是将数据按组划分,是将所有数据重新进行划分,按组成编制,
本来数据是单独放入区中的,而现在的数据,是以组为单位放入区的,而不是说一个分区里面只能有一个组,分组与分区,无关
Spark的分组,一个组的数据放置在一个分区中(把之前的分区聚合了)
组是输出 组内数据是输入
输出 就是分组规则
这种写法,直接. 中间结果不会在内存中留下
奇偶分组,这个的组名是true false
奇偶分组,去掉==0时,组名为0 1
分组过程中,将已分组的数据先放入磁盘,分完组,重新按组分流,动态改变分区数量
默认分区数是不变的,这里主动修改分区数,才改变的
相关文章:

Spark第二课RDD的详解
1.前言 RDD JAVA中的IO 1.小知识点穿插 1. 装饰者设计模式 装饰者设计模式:本身功能不变,扩展功能. 举例: 数据流的读取 一层一层的包装,进而将功能进行进一步的扩展 2.sleep和wait的区别 本质区别是字体不一样,sleep斜体,wait正常 斜体是静态方法…...

人工智能学习框架—飞桨Paddle人工智能
1.人工智能框架 机器学习的三要素:模型、学习策略、优化算法。 当我们用机器学习来解决一些模式识别任务时,一般的流程包含以下几个步骤: 1.1.浅层学习和深度学习 浅层学习(Shallow Learning):不涉及特征学习,其特征…...

SElinux 导致 Keepalived 检测脚本无法执行
哈喽大家好,我是咸鱼 今天我们来看一个关于 Keepalived 检测脚本无法执行的问题 一位粉丝后台私信我,说他部署的 keepalived 集群 vrrp_script 模块中的脚本执行失败了,但是手动执行这个脚本却没有任何问题 这个问题也是咸鱼第一次遇到&…...

2022年电赛C题——小车跟随行驶系统——做题记录以及经验分享
前言 自己打算将做过的电赛真题,主要包含控制组的,近几年出现的小车控制题目,自己做过的真题以及在准备电赛期间刷真题出现的问题以及经验分享给大家 这次带来的是22年电赛C题——小车跟随行驶系统,这道题目指定使用的是TI的单片…...

vscode + python
序 参考链接: 【教程】VScode中配置Python运行环境_哔哩哔哩_bilibili Python部分 Python Releases for Windows | Python.org vscode部分 Visual Studio Code - Code Editing. Redefined 一路next,全部勾上: 就可以了: 安装插…...

badgerdb里面的事务
事务的ACID A 原子性(Atomicity) 多步骤操作,只能是两种状态,要么所有的步骤都成功执行,要么所有的步骤都不执行,举例说明就是小明向小红转账30元的场景,拆分成两个步骤,步骤1&#…...

C# this.Invoke(new Action(() => { /* some code */ }))用法说明
在 C# 中,this.Invoke(new Action(() > { /* some code */ })) 是一种用于在 UI 线程上执行代码的方法,通常用于在后台线程中更新 UI 控件的值或执行其他需要在 UI 线程上执行的操作。 在 Windows Forms 或 WPF 等图形界面应用程序中,UI …...

MongoDB:MySQL,Redis,ES,MongoDB的应用场景
简单明了说明MySQL,ES,MongoDB的各自特点,应用场景,以及MongoDB如何使用的第一章节. 一. SQL与NoSQL SQL被称为结构化查询语言.是传统意义上的数据库,数据之间存在很明确的关联关系,例如主外键关联,这种结构可以确保数据的完整性(数据没有缺失并且正确).但是正因为这种严密的结…...

leetcode每日一题_2682.找出转圈游戏输家
2682.找出转圈游戏输家 题目: n 个朋友在玩游戏。这些朋友坐成一个圈,按 顺时针方向 从 1 到 n 编号。从第 i 个朋友的位置开始顺时针移动 1 步会到达第 (i 1) 个朋友的位置(1 < i < n),而从第 n 个朋友的位置开始顺时针移…...

OpenCV之薄板样条插值(ThinPlateSpline)
官方文档:OpenCV: cv::ThinPlateSplineShapeTransformer Class Reference 使用方法: 头文件:#include <opencv2/shape/shape_transformer.hpp> (1)点匹配 一般根据有多少个样本(或者点)…...

034_小驰私房菜_[问题复盘] Qcom平台,某些三方相机拍照旋转90度
全网最具价值的Android Camera开发学习系列资料~ 作者:8年Android Camera开发,从Camera app一直做到Hal和驱动~ 欢迎订阅,相信能扩展你的知识面,提升个人能力~ 【一、问题】 某些三方相机,预览正常,拍照旋转90度 【二、问题排查】 1 ) HAL这边Jpeg编码数据在哪个地方…...

【TI-CCS笔记】工程编译配置 bin文件的编译和生成 各种架构的Post-build配置汇总
【TI-CCS笔记】工程编译配置 bin文件的编译和生成 各种架构的Post-build配置汇总 TI编译器分类 在CCS按照目录下 有个名为${CG_TOOL_ROOT}的目录 其下就是当前工程的编译器 存放目录为: C:\ti\ccs1240\ccs\tools\compiler按类型分为五种: ti-cgt-arm…...

深入探索Java中的File类与IO操作:从路径到文件的一切
文章目录 1. File类的作用与构造方法2. File类常用方法:获取、判断和创建2.1 获取功能方法2.2 判断功能方法2.3 创建和删除功能方法2.4 目录的遍历方法 3. 递归:探索更深的层次代码示例:递归遍历文件夹 结论 🎉欢迎来到Java学习路…...

Python 处理 Excel 表格的 14 个常用操作
目录 1. 安装依赖库 2. 导入库 3. 读取Excel文件 4. 写入Excel文件 5. 创建工作表 6. 访问工作表 7. 读取单元格数据 8. 写入单元格数据 9. 获取行数和列数 10. 过滤数据 11. 排序数据 12. 添加新行 13. 删除行或列 14. 计算汇总统计 总结 无论是数据分析师、财…...

PyQt有哪些主要组件?
这是一个非常强大的跨平台GUI库,可以让你用Python语言创建美观且功能强大的桌面应用程序。让我们先来了解一下它的主要组件。 首先,我们要介绍的是窗口。窗口是PyQt应用程序的基本元素,所有的GUI元素都放置在窗口中。你可以创建主窗口、模态…...

力推C语言必会题目终章(完结篇)
W...Y的主页 😊 代码仓库分享 💕 今天是分享C语言必会题目最终章,全部都是硬货,大家都坐好准备开始喽!!! 编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内…...

CS5263替代停产IT6561连接DP转HDMI音视频转换器ASL 集睿致远CS5263设计电路原理图
ASL集睿致远CS5263是一款DP1.4到HDMI2.0b转换器芯片,设计用于将DP1.4源连接到HDMI2.0b接收器。 CS5263功能特性: DP接口包括4条主通道、辅助通道和HPD信号。接收器支持每通道5.4Gbps(HBR2)数据速率。DP接收机结合了HDCP1.4和HDCP…...

数据分析 | 随机森林如何确定参数空间的搜索范围
1. 随机森林超参数 极其重要的三个超参数是必须要调整的,一般再加上两到三个其他超参数进行优化即可。 2. 学习曲线确定n_estimators搜索范围 首先导入必要的库,使用sklearn自带的房价预测数据集: import numpy as np import pandas as pd f…...

5G+AI数字化智能工厂建设解决方案PPT
导读:原文《5GAI数字化智能工厂建设解决方案》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。数字化智能工厂定义 智能基础架构协同框架 - 端、边、云、网…...

Windows配置编译ffmpeg +音视频地址
Windows配置MinGW及MinGW-make使用实例 https://blog.csdn.net/Henoiiy/article/details/122550618 ffmpeg安装遇错:nasm/yasm not found or too old. Use --disable-x86asm for a crippled build. https://blog.csdn.net/sayyy/article/details/124337834https://…...

C语言 常用工具型API --------system()
函数名: system() 用 法: int system(char *command); 原理: 加载一个子进程去执行指定的程序,而想Linux命令基本都是一个单独的进程实现的,所以你所掌握的Linux命令越多,该函数功…...

车规级半导体分类(汽车芯片介绍)
车规级半导体,也被称为“汽车芯片”,主要应用于车辆控制装置、车载监控系统和车载电子控制装置等领域。这些半导体器件主要分布在车体控制模块上,以及车载信息娱乐系统方面,包括动力传动综合控制系统、主动安全系统和高级辅助驾驶…...

opencv图像轮廓检测
效果展示: 代码部分: import cv2 import numpy as np img cv2.imread(C:/Users/ibe/Desktop/picture.PNG,cv2.IMREAD_UNCHANGED) # 类型转换 img cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 结构元 kernel cv2.getStructuringElement(cv2.MORPH_REC…...

诚迈科技荣膺小米“最佳供应商奖”
近日,诚迈科技受邀参加小米战略合作伙伴HBR总结会。诚迈科技以尽职尽责的合作态度、精益求精的交付质量荣膺小米公司颁发的最佳供应商奖,其性能测试团队荣获优秀团队奖。 诚迈科技与小米在手机终端方向一直保持着密切的合作关系,涉及系统框架…...

分布式 - 消息队列Kafka:Kafka 消费者的消费位移
文章目录 01. Kafka 分区位移02. Kafka 消费位移03. kafka 消费位移的作用04. Kafka 消费位移的提交05. kafka 消费位移的存储位置06. Kafka 消费位移与消费者提交的位移07. kafka 消费位移的提交时机08. Kafka 维护消费状态跟踪的方法 01. Kafka 分区位移 对于Kafka中的分区而…...

H3C QoS打标签和限速配置案例
EF:快速转发 AF:确保转发 CS:给各种协议用的 BE:默认标记(尽力而为) VSR-88-2 出口路由配置: [H3C]dis current-configuration version 7.1.075, ESS 8305 vlan 1 traffic classifier vlan10 operator and if-match a…...

带curl的docker镜像image
带curl的docker镜像,便于k8s中查找问题,确认容器内部是否可用。 用于测试网络的工具,带有curl nslookup等命令 镜像名docker.io/appropriate/curl 测试命令docker run --rm -it docker.io/appropriate/curl /bin/sh 已测试可用 用于测试网…...

Hadoop数据迁移distcp
Hadoop数据迁移distcp 准备工作 确认源集群(a),目标集群(b)确认a集群的主节点和b集群的主节点确认两个集群的网络相通确认迁移模式(全量迁移还是增量迁移),这里选择全量迁移 迁移文件 迁移t…...

QT-Mysql数据库图形化接口
QT sql mysqloper.h qsqlrelationaltablemodelview.h /************************************************************************* 接口描述:Mysql数据库图形化接口 拟制: 接口版本:V1.0 时间:20230727 说明:支…...

LeetCode150道面试经典题-- 合并两个有序链表(简单)
1.题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 2.示例 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 [], l2 [] 输…...