数据清洗_思路和步骤|学习笔记

简介: 快速学习数据清洗_思路和步骤

开发者学堂课程【大数据 Spark2020版(知识精讲与实战演练)第四阶段 数据清洗_思路和步骤】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/691/detail/12109


数据清洗_思路和步骤


数据读取后进行数据清洗,数据清洗是一个较为抽象的概念,理解数据清洗是什么,数据清洗的步骤,一个步骤一个步骤的完成。

求上车时间和下车时间的差值

转成小时

判断两个数据是否相等,进行数据操作

行政区查找,拿到一条数据在另外一个数据集中查询

问题:使用 Dataset 还是 DataFtame?

DataFtame 是 Dataset,但在语境上 Dataset[obj] Dataset[Row],DataFtame 里面存的是 Row

使用 Row 求上车时间和下车时间的差值,需要找到上车列与下车列求差值

使用 obj 对象类型,假设对象为 Trip,Dataset[Trip],Trip 对象中可以有出租车执照 license、上车时间、下车时间,可以直接 dropOffTime-pickUpTime,即可求得,直接拿到Trip对象到另外一个数据集中查询

对于此场景来说,有可能要拿具体的某一字段或某一对象进行操作,更适合使用 Dataset

加入进行的操作比较偏查询,写 SQL 语句较多,进行无类型的较多,应该使用 DataFtame

都有适应的场景,要判断使用哪一种。

总结:

(1)使用 Dataset

(2)创建样例类,作用是指代一条数据,如数据是 Row 是一行,将这一行转成 Trip 对象,Trip 对象是强类型,Dataset 要关联 Trip 类型数据,创建 Trip 对象,从数据集中读取的对象名称是 DataFtame,DataFtame 存放的是 Row 类型

(3)Row 类型转换成 Trip 类型,将弱类型转化成强类型

(4)转换要考虑空值

1.导读

(1)将  Row 对象转为 Trip

(2)处理转换过程中的报错

2.数据转换

通过 DataFrameReader 读取出来的数据集是 DataFrame ,而 DataFrame 中保存的是 Row 对象,但是后续我们在进行处理的时候可能要使用到一些有类型的转换,也需要每一列数据对应自己的数据类型,所以.需要将 Row 所代表的弱类型对象转为 Trip 这样的强类型对象,而 Trip 对象则是一个样例类,用于代表一个出租车的行程

Step 1:创建 Trip 样例类

Trip 是一个强类型的样例类,一个 Trip 对象代表一个出租车行程,使用 Trip 可以对应数据集中的一条记录

object TaxiAnalysisRunner {

def main (args : Array [String]) : Unit = {

//此处省略 Main 方法中内容

}

}

/**

*代表一个行程,是集合中的一条记录

*@param license出租车执照号

*@param pickUpTime上车时间

*@param dropoffTime下车时间

*@param pickUpX上车地点的经度

* @param pickUpY上车地点的纬度

*@param drop0ffX下车地点的经度

* @param drop0ffY下车地点的纬度

*/

case class Trip(

license: String,

pickUpTime: Long,

drop0ffTime: Long,

pickUpX: Double,

pickUpY: Double,

dropoffX: Double,

dropoffY: Double

)

相关文章
|
机器学习/深度学习 数据采集 数据挖掘
实战派教学:掌握Scikit-learn,轻松实现数据分析与机器学习模型优化!
【10月更文挑战第4天】Scikit-learn凭借高效、易用及全面性成为数据科学领域的首选工具,简化了数据预处理、模型训练与评估流程,并提供丰富算法库。本文通过实战教学,详细介绍Scikit-learn的基础入门、数据预处理、模型选择与训练、评估及调优等关键步骤,助你快速掌握并优化数据分析与机器学习模型。从环境搭建到参数调优,每一步都配有示例代码,便于理解和实践。
384 2
|
4月前
|
云栖大会
2025 云栖大会来了|免费门票限量抢!
云栖大会 2025 门票免费领取!
317 0
|
10月前
|
安全 虚拟化 Windows
Windows Server 2016 中文版、英文版下载 (2025 年 2 月更新)
Windows Server 2016 中文版、英文版下载 (2025 年 2 月更新)
344 17
Windows Server 2016 中文版、英文版下载 (2025 年 2 月更新)
|
存储 边缘计算 安全
边缘计算的概念和在IoT中的应用
随着物联网(IoT)设备数量的激增,传统的云计算模式面临着数据传输延迟和带宽压力等问题。边缘计算作为一种新的计算模式,通过将计算资源和服务部署到靠近数据源的位置,解决了这些问题。
293 2
|
敏捷开发 数据可视化 数据挖掘
高效的投标工作计划管理:五大看板工具使用技巧与推荐
随着全球竞争加剧,投标工作变得愈发复杂。传统方法难以满足现代需求,看板工具因此应运而生,通过可视化管理、任务分配和协作功能,显著提升工作效率和管理水平。本文推荐2024年几款优秀看板工具,如板栗看板、Taiga、Targetprocess、ZenHub和Miro,分别从软件简介、功能亮点、适用行业等方面进行了全面评测,旨在帮助企业高效完成投标工作。
高效的投标工作计划管理:五大看板工具使用技巧与推荐
|
机器学习/深度学习 数据采集 监控
怎么用机器学习做时间序列
8月更文挑战第20天
434 9
|
弹性计算 小程序
阿里云服务器4核16G配置租赁价格表,多种ECS实例规格可选
阿里云提供多种4核16G服务器实例,如ECS经济型e、高主频hfg8i、通用型g7/u1/g8i/g8ae等。ECS经济型e实例ecs.e-c1m4.xlarge每月低至70元,适用于游戏、Web、小程序后端等场景
525 1
|
算法 Java 定位技术
心得经验总结:标准坐标系与火星坐标系(高德)百度坐标系之间互转
心得经验总结:标准坐标系与火星坐标系(高德)百度坐标系之间互转
319 1
|
Linux 数据处理 数据库
深入解析Linux命令id:理解用户身份与权限
`id`命令在Linux中用于显示用户身份(UID, GID和附加组)。它查看系统用户数据库获取信息。参数如`-u`显示UID,`-g`显示GID,`-G`显示附加组,结合`-n`显示名称而非ID。用于确认命令执行者身份,确保权限正确。在脚本中使用时注意权限管理,遵循最小权限原则。