任务描述
基于数据清洗后的深圳通刷卡数据集(存放在/data/workspace/myshixun/Datas/SZcardDatas.csv),对地铁各线路的收益进行统计。
数据集说明
清洗之后的数据集字段没有改变,依旧是11个字段,字段说明如下:
字段名 字段类型 含义
card_no String 卡号
deal_date String 交易日期时间
deal_type String 交易类型
deal_money String 实际交易金额/分为单位
deal_value String 票价/分为单位
equ_no String 设备编码
company_name String 公司名称
station String 线路站点
car_no String 车牌号
conn_mark String 联程标记
close_date String 结算日期
数据中无列名
部分数据展示如下:
FHEGHDGDC,2018-09-01 07:52:39,地铁入站,0,0,265025119,地铁七号线,福民,进AGM25-26,0,2018-09-01 00:00:00
FHFCCEIDF,2018-09-01 07:41:05,巴士,120,200,227000076,金华南巴士,332(蛇口),粤BU2975,0,2018-09-01 00:00:00
CBCGCDJDJ,2018-09-01 07:34:23,巴士,160,200,227000038,金华南巴士,331(松岗),粤BU2355,0,2018-09-01 00:00:00
CBIEHFGCB,2018-09-01 07:50:14,地铁出站,380,400,268016106,地铁一号线,世界之窗站,OGT-106,0,2018-09-01 00:00:00
DDABDEEDD,2018-09-01 07:01:08,巴士,160,200,227000175,金华南巴士,M433(福永),粤BW2968,0,2018-09-01 00:00:00
CBAEHADJA,2018-09-01 07:45:45,地铁入站,0,0,265026113,地铁七号线,皇岗口岸,进AGM18-19,0,2018-09-01 00:00:00
FFGAIJJBJ,2018-09-01 07:57:52,地铁出站,285,300,261016120,地铁三号线,水贝,AGM-120,0,2018-09-01 00:00:00
FIJIJFJFA,2018-09-01 07:56:51,地铁入站,0,0,261021116,地铁三号线,丹竹头,AGM-116,0,2018-09-01 00:00:00
FHIBEGJBD,2018-09-01 07:54:44,地铁入站,0,0,265011117,地铁七号线,西丽湖,进AGM24-25,0,2018-09-01 00:00:00
BIGFGGFAG,2018-09-01 07:49:56,地铁入站,0,0,265014107,地铁七号线,珠光,进AGM17-18,0,2018-09-01 00:00:00
FIJCEEDIB,2018-09-01 07:50:30,地铁出站,380,400,260027108,地铁二号线,香蜜,IGT-108,0,2018-09-01 00:00:00
MySQL 数据库 szcard 连接方式:
url:jdbc:mysql://127.0.0.1:3306/szcard?useUnicode=true&characterEncoding=utf-8;
用户名:root;
密码:123123。
tb_subway_line_income 表结构:
字段名 数据存储类型 字段含义
subway_line varchar(255) 地铁线路
subway_line_income float(20,2) 地铁线路的收益(元)
编程要求
1.根据清洗之后的数据集进行地铁线路收益分析。
筛选出deal_type 字段为 地铁出站 的数据;
数据中 company_name 的值为地铁线路名称,deal_money 为实际交易金额,将交易金额以分为单位转换成以元为单位,统计该值,为地铁各线路的收益。
2.将查询结果存储到 MySQL 数据库 szcard 的 tb_subway_line_income(表已经提前创建)。
MySQL 查询到的数据格式示例如下:
tb_subway_line_income 表中的数据:
subway_line subway_line_income
地铁五号线 338649.5
地铁十一号线 126988.35
地铁二号线 146091.65
地铁四号线 117323.9
地铁一号线 306612.3
地铁七号线 93256.5
地铁三号线 275816.05
地铁九号线 78589.6
注意事项
1.任务完成后请点击"测评"按钮,验证统计结果是否正确,程序未通过的情况下,可以点击测试集查看具体问题;
2.此项目是Maven项目,pom.xml如下
<dependencies>
<!--scala-->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<!--Spark SQL-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<!--解析IP地址-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<!--MySQL 驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
程序中已经导入了部分类,如果需要用到其他类请自行导入或自行编写pom.xml文件。
评测时间较长,请耐心等待一会
考核点说明
1.是否掌握对字符进行转换操作;
2.最后计算出的收益是否将原本以分为单位的交易金额转换成以元为单位。
2.是否将分析后的数据存入 szcard 数据库 tb_subway_line_income 表中。
测试说明
点击评测后,平台会对您提交代码进行测试验证,若测试结果与预期输出一致,则算通关。