spark-shell基本算子1

第一题

1、 在/home/hadoop/traffic目录下,数据文件“violation.txt”为违章条目对照表,内含违章代码、扣分数、罚款金额、违法内容等,请使用sortBy算子找出扣分最多的条目Top3。

violation数据

X01 2 200 超速10%-20%
X02 6 300 超速20%-50%
X03 12 500 超速50%以上
X04 6 200 不按信号灯行驶(闯红灯)
X05 3 200 不按交通标识行驶
X06 3 150 逆向行驶
X07 1 150 接打电话
X08 1 150 斑马线不礼让行人
X09 12 2000 交通事故逃逸,尚不构成犯罪
X10 12 1000 驾驶与驾驶证载明的准驾车型不相符合的车辆
X11 6 300 公路客运车辆违反规定载货的
X12 2 500 公路客运车辆载客超过核定载客人数未达20%的
X13 6 800 公路客运车辆载客,超过额定乘员20%以上不足50%的
X14 6 1500 公路客运车辆载客超过额定乘员50%以上不足100%

<style body="red">

hadoop@Master:~$ vim violation.txt
hadoop@Master:~$ cat violation.txt
//违章代码、扣分数、罚款金额、违法内容
X01    2    200    超速10%-20%
X02    6    300    超速20%-50%
X03    12    500    超速50%以上
X04    6    200    不按信号灯行驶(闯红灯)
X05    3    200    不按交通标识行驶
X06    3    150    逆向行驶
X07    1    150    接打电话
X08    1    150    斑马线不礼让行人
X09    12    2000    交通事故逃逸,尚不构成犯罪
X10    12    1000    驾驶与驾驶证载明的准驾车型不相符合的车辆
X11    6    300    公路客运车辆违反规定载货的
X12    2    500    公路客运车辆载客超过核定载客人数未达20%的
X13    6    800    公路客运车辆载客,超过额定乘员20%以上不足50%的
X14    6    1500    公路客运车辆载客超过额定乘员50%以上不足100%

val violation=sc.textFile("file:///home/hadoop/tracffic/violation.txt")
val split_violation=violation.map(x=>x.split("\t"))
val tuple_violation=split_violation.map(x=>(x(0),x(1).trim.toInt,x(2),x(3)))
//trim.toInt转化为Int类型方便计算
val sort_violation=tuple_violation.sortBy(x=>x._2,false)
sort_violation.take(3)

//切换到scala页面




在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二题

2、使用Spark-Shell完成以下任务 :读取records.txt和recordsCityB.txt数据使用union和filter算子找车辆AK0803在本市及临市B的交通违章记录。

records.txt数据

> 2020-1-05	A301	CZ8463	X04
2020-1-08	A301	MU0066	X01
2020-1-08	A301	CZ8463	X01
2020-1-08	C047	CZ8463	X02
2020-1-08	A301	CZ8463	X08
2020-1-10	C047	PW2306	X03
2020-1-10	A301	NR4542	X02
2020-1-10	A301	NR4542	X02
2020-1-10	A059	MU0066	X03
2020-1-10	C047	MU0066	X05
2020-1-10	B068	MU0066	X07
2020-1-10	C047	MR3328	X01
2020-1-10	C047	CZ8463	X04
2020-1-10	C047	CZ8463	X03
2020-1-10	C047	CQ9901	X01
2020-1-11	A059	MU1134	X03
2020-1-11	C047	MU0066	X01
2020-1-13	C047	MU0066	X05
2020-1-13	B068	AK0803	X02
2020-1-13	B068	AK0803	X04
2020-1-15	C047	CZ8463	X01
2020-1-18	C047	MU1237	X02
2020-1-18	B068	MK4875	X03
2020-1-18	A301	CZ8463	X06
2020-1-18	C047	CZ8463	X02

recordsCity数据

> 2020-1-14	8001	HZ6663	X02
2020-1-14	8011	HW1113	X03
2020-1-10	8011	CQ4481	X03
2020-1-12	8011	NX2549	X04
2020-1-15	6123	MU2497	X05
2020-1-15	6123	NU3080	X06
2020-1-15	6123	AK0803	X02
2020-1-15	6123	AK0694	X01
2020-1-15	6123	CZ8463	X10
2020-1-17	4074	MU1237	X11
2020-1-17	4074	MK4875	X07
2020-1-18	4074	MU1840	X08
2020-1-18	4074	CZ2407	X03




vim records.txt
cat records.txt
vim recordsCityB.txt
cat recordsCityB.txt

val records=sc.textFile("file:///home/hadoop/tracffic/records.txt")

val recordCityB=sc.textFile("file:///home/hadoop/tracffic/recordsCityB.txt")


val all=records.union(recordCityB)

//可以查看一下合并后的RDD
all.collect
//
val tupleAll=all.map(x=>x.split("\t")).map(x=>(x(0),x(1),x(2),x(3)))


tupleAll.filter(x=>x._3.equals("AK0803")).collect

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值