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 会从所有分区获取数据,速度相对较慢,但它只获取第一个元素,只会处理第一个分区,无需处理所有数据,处理速度较快。

相关文章
|
人工智能 监控 安全
政府行业应用解决方案 | 应急行业
本文介绍了政府行业应用解决方案 | 应急行业的方案概述,方案价值及优势以及最佳实践。
政府行业应用解决方案 | 应急行业
|
机器学习/深度学习 人工智能 自然语言处理
Hugging Face 论文平台 Daily Papers 功能全解析
【9月更文挑战第23天】Hugging Face 是一个专注于自然语言处理领域的开源机器学习平台。其推出的 Daily Papers 页面旨在帮助开发者和研究人员跟踪 AI 领域的最新进展,展示经精心挑选的高质量研究论文,并提供个性化推荐、互动交流、搜索、分类浏览及邮件提醒等功能,促进学术合作与知识共享。
435 0
|
消息中间件 数据库
TCC(Try-Confirm-Cancel)
【6月更文挑战第5天】
691 3
|
XML 搜索推荐 API
通义千问API:让大模型使用各种工具
本章我们将通过一个简单的例子,揭示基于LangChain的Agent开发的秘密,从而了解如何扩展大模型的能力。
通义千问API:让大模型使用各种工具
|
存储 分布式计算 监控
Spark中广播变量
【8月更文挑战第13天】
512 0
|
并行计算
huggingface_hub.utils._validators.HFValidationError: Repo id must be in the form ‘repo_name‘ or ‘nam
这篇文章介绍了在使用HuggingFace模型库时遇到的`Repo id`格式错误问题,并提供了将相对路径改为正确的绝对路径的解决办法。
【sklearn报错解决方案】UndefinedMetricWarning: Precision is ill-defined and being set to 0.0
【sklearn报错解决方案】UndefinedMetricWarning: Precision is ill-defined and being set to 0.0
2437 0
【sklearn报错解决方案】UndefinedMetricWarning: Precision is ill-defined and being set to 0.0
scp -P -R 远程复制文件(夹) 到 指定端口 指定服务器 指定 目录
scp -P -R 远程复制文件(夹) 到 指定端口 指定服务器 指定 目录
2267 0
scp -P -R 远程复制文件(夹) 到 指定端口 指定服务器 指定 目录
|
存储 缓存 关系型数据库
高性能 MySQL(八):通过优化数据访问,来解决慢查询
前面几篇文章中介绍了如何设计最优的库表结构,以及如何建立最好的索引,这些对于高性能来说是必不可少的。但这还不够——还需要合理的设计查询。如果查询写得很糟糕,即使库表结构再合理、索引再合适,也无法实现高性能。
313 0