RDD 算子_ Action _ take | 学习笔记

简介: 快速学习 RDD 算子_ Action _ take

开发者学堂课程【大数据Spark2020最新课程(知识精讲与实战演练)第二阶段RDD 算子_ Action _ take学习笔记,与课程紧密联系,让用户快速学习知识。

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


RDD 算子_ Action _ take


内容介绍

一、前言

二、实例讲解

三、总结

 

一、前言

接下来介绍几个用于获取数据的算子,前面我们接触了一个获取数据的算子,叫做 collect 。有一个叫做 first 的算子,也是用于获取数据,与 collect 获取整个集合不同 , first 只获取第一个元素。叫做 take 的算子可以用于获取前  n 个元素。叫做 takeSample 的算子与前面的 Sample 一样,但它是直接拿到结果,而 Sample 是在数据整理完后,再经过 Action 获取结果。

1.png


二、实例讲解

进入代码,创建新方法,创建集合,定义几个元素,然后 print ,调用 first take takeSample ,完成整个代码的编写,运行代码,查看结果。 take takeSample 返回的结果是一个数组,需要特殊处理一下。代码如下:

@Test

def take() : Unit = {

val rdd = sc.parallelize(Seq(1,2,3,4,5,6))

rdd.take(num = 3).foreach(item => println(item))

println(rdd.first())

rdd.takeSample(withReplacement = true,num = 3)).foreach(item => println(item))

}

通过结果可以看出,这三个结果中间还有额外的 Log take 的结果有三个, first 的结果是一个, takeSample 的结果有三个,出现了放回现象。如果想改成无放回现象,只需要把代码中的 true 改成 flase 即可。


三、总结

简单总结一下, take takeSample 都是获取数据,一个是直接获取,一个是采样获取。 first 在一般情况下, Action 会从所有分区获取数据,速度相对较慢,但它只获取第一个元素,只会处理第一个分区,无需处理所有数据,处理速度较快。

相关文章
|
人工智能 监控 安全
政府行业应用解决方案 | 应急行业
本文介绍了政府行业应用解决方案 | 应急行业的方案概述,方案价值及优势以及最佳实践。
政府行业应用解决方案 | 应急行业
|
消息中间件 数据库
TCC(Try-Confirm-Cancel)
【6月更文挑战第5天】
803 3
|
XML 搜索推荐 API
通义千问API:让大模型使用各种工具
本章我们将通过一个简单的例子,揭示基于LangChain的Agent开发的秘密,从而了解如何扩展大模型的能力。
通义千问API:让大模型使用各种工具
vscode 打开csv乱码
vscode 打开csv乱码
3172 0
|
存储 缓存 关系型数据库
高性能 MySQL(八):通过优化数据访问,来解决慢查询
前面几篇文章中介绍了如何设计最优的库表结构,以及如何建立最好的索引,这些对于高性能来说是必不可少的。但这还不够——还需要合理的设计查询。如果查询写得很糟糕,即使库表结构再合理、索引再合适,也无法实现高性能。
331 0
|
3天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
4天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1089 152