RDD 的分区和 shuffle 创建 RDD 时指定分区数 | 学习笔记

简介: 快速学习 RDD 的分区和 shuffle 创建 RDD 时指定分区数

开发者学堂课程【大数据Spark2020最新课程(知识精讲与实战演练)第二阶段RDD 的分区和 shuffle 创建 RDD 时指定分区数学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/689/detail/11992


RDD 的分区和 shuffle 创建 RDD 时指定分区数


内容介绍

一、本节框架

二、通过本地集合时指定分区数

三、通过读取文件时指定分区数

 

一、本节框架

学习指定 RDD 的分区,在创建 RDD 指定。

创建 RDD 的三种方式:

1.通过本地集合创建

2.通过读取外部系统的文件创建

3.其他 RDD 的衍生,通过算子进行指定。

讨论指定 RDD 的分区方式:

1)通过本地集合时指定分区数

2)通过读取文件时指定分区数

进入 shell 窗口,通过命令:

bin/spark-shell --master local[6]  //指定6个线程数

进入 spark

image.png


二、通过本地集合时指定分区数

编写命令:

scala> val rdd1 = sc.parallelize(Seq(134567)3)

//通过 parallelize 方法创建集合时,parallelize有两个参数:第一个是集合,第二个是分区数 。比如说指定一个3作为分区数

rdd1.partitions.size //通过 size 查看到分区数。

image.png

rdd1.partitions//包含三个分区。

image.png

第一个分区:Array[org.apache.spark.Partition]=Array(org.apache.spark.rdd.ParallelCollectionPartition@691,

第二个分区:

org. apache. spar k.rdd.ParallelCollectionPartition@692

第三个分区:

org.apache.spark.rdd.ParallelCollectionPartition@693

 

三、通过读取文件时指定分区数

再去创建一个rdd2:

rdd2=sc.textFile("hdfs://node01:8020/dataset/wordcount.txt, 6)//手动指定分区。通过 textFile 方法创建 RDD 。通过读取 hdfs 上的文件 wordcount.txt 来创建。

此处也有2个参数,但是这里的分区数指定的最小的分区数,所以真实的分区数比指定的多 。

rdd2.partitions.size//真实的分区数比指定的多  

image.png

这是2种创建 RDD 指定分区的方式。

相关文章
|
XML Java 关系型数据库
Spring Boot 异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)
Spring Boot 异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)
3688 0
|
5月前
BigDecimal保留两位小数
本文介绍了BigDecimal保留两位小数的三种方法:`setScale`、`DecimalFormat`和`String.format`。其中,`setScale`可设置保留规则并返回BigDecimal类型值;`DecimalFormat`通过匹配规则返回字符串类型值;`String.format`为字符串自带方法,同样返回字符串类型值。此外,文章还对比了四种保留小数规则(如`00.00`、`#0.00`等),总结出`#0.00`是最适用的规则。附有详细代码示例与控制台打印结果,便于理解与实践。
918 19
|
机器学习/深度学习 并行计算 PyTorch
优化技巧与策略:提高 PyTorch 模型训练效率
【8月更文第29天】在深度学习领域中,PyTorch 是一个非常流行的框架,被广泛应用于各种机器学习任务中。然而,随着模型复杂度的增加以及数据集规模的增长,如何有效地训练这些模型成为了一个重要的问题。本文将介绍一系列优化技巧和策略,帮助提高 PyTorch 模型训练的效率。
972 0
|
大数据 数据挖掘 数据安全/隐私保护
大数据对生活的影响
大数据对生活的影响
451 1
|
6月前
|
JSON 前端开发 Java
深入理解 Spring Boot 中日期时间格式化:@DateTimeFormat 与 @JsonFormat 完整实践
在 Spring Boot 开发中,处理前后端日期交互是一个常见问题。本文通过 **@DateTimeFormat** 和 **@JsonFormat** 两个注解,详细讲解了如何解析前端传来的日期字符串以及以指定格式返回日期数据。文章从实际案例出发,结合代码演示两者的使用场景与注意事项,解决解析失败、时区偏差等问题,并提供全局配置与局部注解的实践经验。帮助开发者高效应对日期时间格式化需求,提升开发效率。
1749 2
|
9月前
|
API Python
京东拍立淘图片搜索商品接口系列(京东 API)
简介:本文介绍了如何使用拍立淘图片搜索 API 在京东平台上查找相似商品。首先需安装 Python 库 `requests`,并通过内置库 `hashlib` 生成签名。API 支持通过图片 URL 或 Base64 编码的图片进行搜索,返回商品名称、价格等信息。示例代码展示了如何构建请求并处理响应。应用场景包括电商购物助手和竞品分析,帮助用户和商家提高购物效率和市场竞争力。
|
消息中间件 存储 负载均衡
zookeeper 特点、使用场景及安装,配置文件解析
zookeeper 特点、使用场景及安装,配置文件解析
214 2
|
11月前
|
SQL XML Java
Mybatis中foreach的使用
【11月更文挑战第12天】MyBatis 的 `foreach` 标签用于在 SQL 语句中遍历集合或数组,支持批量插入、更新及多条件查询等操作。通过设置 `collection`、`item` 等属性,可动态生成 SQL 片段,实现高效的数据处理。示例包括批量插入用户信息、根据 ID 列表查询用户数据以及遍历 Map 查询分类下的产品。
666 0
|
iOS开发 MacOS Windows
电脑怎么截图?截屏电脑快捷键ctrl加什么?
截图是我们日常使用电脑过程中非常常见的操作之一。无论是想保存有用的信息、分享有趣的内容,还是记录某个错误信息,截图都是一个简单而有效的方式。但是,不同的操作系统和需求会决定使用不同的方法来截图。接下来,我们将详细介绍几种在Windows和Mac电脑上常见的截图方法,帮助您快速掌握这一技能。
电脑怎么截图?截屏电脑快捷键ctrl加什么?
|
资源调度 前端开发 JavaScript
如何用 Bower 管理前端资源:提升开发效率与项目维护性
【7月更文挑战第2天】**Bower**是基于Node.js的前端包管理器,用于高效管理JavaScript库、CSS和HTML模板等资源。通过安装、配置、搜索、安装、更新及卸载组件,它帮助开发者保持依赖的一致性,提升开发效率。配置`.bowerrc`设定安装目录,`bower.json`记录依赖。遵循最佳实践,如定期更新、锁定版本和清理无用组件,能增强项目维护性。尽管有新工具出现,掌握Bower仍是前端开发基础。
345 0