有类型转换_去重 | 学习笔记

简介: 快速学习有类型转换_去重

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:有类型转换_去重】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/690/detail/12073


有类型转换_去重

 

经常在编写一些这个代码的时候,或者大家自己在进行数据处理的时候,有没有发现在很多需求下都需要对结果集来进行去重,去重怎么去使用?

自己实现去重的话还是会有一点点难度的,就是包括使用 map filter 和 flat map,其实都不容易做到,还是比较难的。那去重怎么办?

这个 Spark 已经为我们提供了一个去重的 API,叫做 distinict。并且在我们 scala 当中,也有一个去重的 API。也叫 distinict,但是这个 Spark 当中,还为这个去重提供了一个别名叫做 dropDuplicates。drop 就是去除的意思,Duplicates 就是重复的意思,两个 API 我们一起去了解一下。

image.png

接下来进入到 idea 当中,创建一个新的方法,这个方法就命名为叫 def  dropDuplicates。

def  dropDuplicates(): Unit = {

val ds= spark.creatDataset( Seq(Person(“zhangsan”,15),

Person(“zhangsan”,15),Person(“list”,15)).toDS()

//里面存放三个 person 对象,通过 creatDataset 进行创建

ds .distinict( ).show()

ds .dropDuplicates(coli =”age”).show()

//第一种去重方式。

直接使用 distinct,使用这种 distinct,就能直接去除所有的列当中的重复。可以来看啊,这个 zhangsan 和这个 list 不算是重复列,也不算是重复行,假如说想去掉这个 age 上的重复,该怎么做呢?让我们等会儿再来了解。

这个时候呢,先去 show 一下,那么我们先去查看一下这个 distinct 的这样的一个 API 返回的结果,结果肯定是认为 zhangsan 和 list 不是同一个重复行,如果只想针对于这个 age 来进行去重,也就是说只要 age 相同,就认为是重复。

其实这种需求也经常会见到,那就需要更换一个 API,叫做 ds .dropDuplicates,然后接下来,这个里面需要去传上对应的要去重 age 的那个列,这个时候就去重成功了,但是这个地方传的列名,就不能只使用这个单引号来去进行上传了,需要去传一个字符串。

接下来运行:

image.png

看一看第二个结果集,结果也能发现,在这个 dropDuplicates 传入 age 以后,就只出现了一个 zhangsan15,因为这个 zhangsan15 是第一条。并且是按照 age 这一列来进行去重的,这就是去重的两种方式。

相关文章
|
21小时前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
10天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
4天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
429 191
|
2天前
|
数据采集 消息中间件 人工智能
跨系统数据搬运的全方位解析,包括定义、痛点、技术、方法及智能体解决方案
跨系统数据搬运打通企业数据孤岛,实现CRM、ERP等系统高效互通。伴随数字化转型,全球市场规模超150亿美元,中国年增速达30%。本文详解其定义、痛点、技术原理、主流方法及智能体新范式,结合实在Agent等案例,揭示从数据割裂到智能流通的实践路径,助力企业降本增效,释放数据价值。
|
8天前
|
人工智能 自然语言处理 安全
国内主流Agent工具功能全维度对比:从技术内核到场景落地,一篇读懂所有选择
2024年全球AI Agent市场规模达52.9亿美元,预计2030年将增长至471亿美元,亚太地区增速领先。国内Agent工具呈现“百花齐放”格局,涵盖政务、金融、电商等多场景。本文深入解析实在智能实在Agent等主流产品,在技术架构、任务规划、多模态交互、工具集成等方面进行全维度对比,结合市场反馈与行业趋势,为企业及个人用户提供科学选型指南,助力高效落地AI智能体应用。
|
4天前
|
消息中间件 安全 NoSQL
阿里云通过中国信通院首批安全可信中间件评估
近日,由中国信通院主办的 2025(第五届)数字化转型发展大会在京举行。会上,“阿里云应用服务器软件 AliEE”、“消息队列软件 RocketMQ”、“云数据库 Tair”三款产品成功通过中国信通院“安全可信中间件”系列评估,成为首批获此认证的中间件产品。此次评估覆盖安全可信要求、功能完备性、安全防护能力、性能表现、可靠性与可维护性等核心指标,标志着阿里云中间件产品在多架构适配与安全能力上达到行业领先水平。
313 196