数据清洗_创建 Trip 类|学习笔记

简介: 快速学习数据清洗_创建 Trip 类

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

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


数据清洗_创建 Trip 类


创建 Trip 类

数据清洗,步骤一创建样例类来表示数据,步骤二将 Row 转成 Trip 样例类,步骤三数据处理,即转换规则,步骤四异常处理。

创建样例类,样例类不能直接放在 TaxiAnalysisRunner 对象中,应当放在外侧,即case class Trip(

Trip 中的内容首先查看数据集中有什么、思考数据集中的数据哪些可以用到,此时可以创建 Trip

一个 Trip 代表数据集中的一行数据

image.png

写入 license 执照号,pickUpTime 上车时间,dropOffTime 下车时间,上下车经纬度

case class Trip(

license: string,

pickupTime: Long,

dropoffTime: Long,

pickupx: Double,

pickupY: Double,

dropoffx: Double,

dropoffY: Double

)

object TaxiAnalysisRunner {

是主类

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

主类中有一个 main 方法,数据读取完后打印的代码注释掉,注释后进行具体的转换工作

object TaxiAnalysisRunner {

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

//1.创建 SparkSession

val spark = SparkSession . builder()

.master ( "local[6]")

.appName( "taxi")

.getorCreate( )

//2.导入函数和隐式转换

import spark.implicits._

import org.apache.spark.sql.functions._

//3.读取文件

val taxiRaw =DataFram[Row] spark.read

.option ( "header" , value = true)

.csv ( "dataset/half_trip.csv")

//taxiRaw.show ( )

//taxiRaw. printSchema ( )

读取的 taxiRaw 是 DataFrame 运行,里面存放的是 Row,需要让 Dataset 存放 Trip,数据类型是 DataFrame,本质上是 Dataset

val taxiRaw =Dataset[Row] spark.read

将 Row 转成 Trip 类型,rdd 不考虑存放的类型

//4.转换操作

taxiRaw.rdd.map(row=>trip)

}

在 main 方法外面创建一个方法 parse,parse 中接收 row 类型的对象,返回 trip 类型对象

def parse(row:Row): Unit={

trip

}

直接接收 parse 转换方法

//4.转换操作

taxiRaw.rdd.map(parse)

}

Parse 传下来时自动被转为函数,是 scala 中的一个优化,在转成函数时,函数接收一个 row 类型的对象,返回一个 trip 类型的对象,Unit 改为 Trip

def parse(row:Row):Trip={

总结:两个方面一个是创建对象与创建转换方法,另一个写出 map 方法。

相关文章
|
SQL 分布式计算 调度
Spark入门(一篇就够了)(三)
Spark入门(一篇就够了)(三)
867 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
国产AI神器Deepseek,本地离线使用教程!
国产AI神器Deepseek,本地离线使用教程!
1367 14
|
9月前
|
存储 监控 数据挖掘
淘宝店铺所有商品数据接口全攻略
淘宝开放平台提供`taobao.items.onsale.get`接口,可批量获取店铺在售商品列表,包括商品ID、标题、价格等信息,适用于商品管理、竞品监控等场景。调用流程:注册账号、创建应用、申请权限。核心参数有nick、page_no、page_size等。Python示例代码展示如何通过API获取商品数据,并处理分页和异常。注意事项包括权限申请、频率限制及数据安全。扩展应用如结合商品详情接口进行数据分析。
|
数据采集 存储 安全
一篇文章教你正确解锁 代理ip 的使用方式,包含两个实战案例
本文介绍了代理IP在爬虫和网络测试中的重要性,详细讲解了代理IP的基础知识,包括定义、分类和获取方式。文章强调了正确使用代理IP的方法,如选择合适类型的代理、配置代理、轮换验证以及遵循法规。通过两个实战案例,展示了如何在爬虫中使用代理IP规避访问限制和在性能测试中模拟不同地域用户。代理IP的恰当运用能提升效率、保障安全,适应不断发展的网络环境。
1883 2
|
Oracle 关系型数据库 Java
实时计算 Flink版操作报错合集之如何通过savepoint恢复Flink CDC任务
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
SQL 分布式计算 NoSQL
使用Spark高效将数据从Hive写入Redis (功能最全)
使用Spark高效将数据从Hive写入Redis (功能最全)
876 1
|
移动开发 小程序 前端开发
uniap开发微信小程序如何在线预览pdf文件
这是一段关于在线预览和处理PDF的多方案说明,包括使用JavaScript库PDF.js(如`pdfh5.js`)实现H5页面预览,提供QQ群和技术博客链接以获取帮助和支持。还介绍了两个适用于Uni-app的插件,一个用于H5、小程序和App中的PDF预览和下载,另一个专门解决手机端PDF预览问题。此外,还详细描述了在Uni-app中使用微信小程序API`wx.openDocument`显示PDF的步骤,包括上传文件、配置权限和编写代码。
|
流计算
flink 单作业模式部署提交作业爆:Trying to access closed classloader. Please check if you store classloaders direc
flink 单作业模式部署提交作业爆:Trying to access closed classloader. Please check if you store classloaders direc
flink 单作业模式部署提交作业爆:Trying to access closed classloader. Please check if you store classloaders direc
|
SQL 监控 Java
实时计算 Flink版产品使用问题之出现反压(Backpressure)问题时,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
关系型数据库 MySQL Java
Flink cdc报错问题之内存不足报错如何解决
Flink CDC报错指的是使用Apache Flink的Change Data Capture(CDC)组件时遇到的错误和异常;本合集将汇总Flink CDC常见的报错情况,并提供相应的诊断和解决方法,帮助用户快速恢复数据处理任务的正常运行。