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 异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)
3922 0
|
7月前
BigDecimal保留两位小数
本文介绍了BigDecimal保留两位小数的三种方法:`setScale`、`DecimalFormat`和`String.format`。其中,`setScale`可设置保留规则并返回BigDecimal类型值;`DecimalFormat`通过匹配规则返回字符串类型值;`String.format`为字符串自带方法,同样返回字符串类型值。此外,文章还对比了四种保留小数规则(如`00.00`、`#0.00`等),总结出`#0.00`是最适用的规则。附有详细代码示例与控制台打印结果,便于理解与实践。
1098 20
|
机器学习/深度学习 并行计算 PyTorch
优化技巧与策略:提高 PyTorch 模型训练效率
【8月更文第29天】在深度学习领域中,PyTorch 是一个非常流行的框架,被广泛应用于各种机器学习任务中。然而,随着模型复杂度的增加以及数据集规模的增长,如何有效地训练这些模型成为了一个重要的问题。本文将介绍一系列优化技巧和策略,帮助提高 PyTorch 模型训练的效率。
1069 0
|
8月前
|
数据采集 弹性计算 供应链
阿里云服务器包年包月、按量付费和抢占式实例有什么区别?如何选择?
阿里云服务器ECS提供三种付费类型:包年包月、按量付费和抢占式实例。包年包月适合长时间稳定使用,价格优惠且支持备案;按量付费为先用后付,按小时结算,适用于短期或突发需求,但费用较高;抢占式实例价格最低(可省90%),但可能因资源供需被释放,适合无状态应用如大数据分析、图像渲染等。选择时需根据业务场景权衡成本与稳定性,例如网站服务选包年包月,短期测试选按量付费,弹性伸缩业务可用抢占式实例。
255 4
|
11月前
|
API Python
京东拍立淘图片搜索商品接口系列(京东 API)
简介:本文介绍了如何使用拍立淘图片搜索 API 在京东平台上查找相似商品。首先需安装 Python 库 `requests`,并通过内置库 `hashlib` 生成签名。API 支持通过图片 URL 或 Base64 编码的图片进行搜索,返回商品名称、价格等信息。示例代码展示了如何构建请求并处理响应。应用场景包括电商购物助手和竞品分析,帮助用户和商家提高购物效率和市场竞争力。
|
SQL XML Java
Mybatis中foreach的使用
【11月更文挑战第12天】MyBatis 的 `foreach` 标签用于在 SQL 语句中遍历集合或数组,支持批量插入、更新及多条件查询等操作。通过设置 `collection`、`item` 等属性,可动态生成 SQL 片段,实现高效的数据处理。示例包括批量插入用户信息、根据 ID 列表查询用户数据以及遍历 Map 查询分类下的产品。
857 0
|
网络协议 C语言
C语言 网络编程(十)TCP通信创建流程---客户端
在TCP通信中,客户端需通过一系列步骤与服务器建立连接并进行数据传输。首先使用 `socket()` 函数创建一个流式套接字,然后通过 `connect()` 函数连接服务器。连接成功后,可以使用 `send()` 和 `recv()` 函数进行数据发送和接收。最后展示了一个完整的客户端示例代码,实现了与服务器的通信过程。
|
监控 Linux
在Linux中,如何查看网络接口的状态?
在Linux中,如何查看网络接口的状态?
|
安全 Java
JAVA反射调用方法
JAVA反射调用方法
|
Java
手写SpringBoot(四)之bean动态加载
可以看到只有userApplication tomcatWebServer init打印,没有mySpringboot tomcatWebServer init打印,证明spring-boot只加载了用户定义的那个tomcatWebServer
202 0