二、大数据实践项目——数据分析与处理

一、数据处理主要任务

二、数据集处理

1、查看数据集基本情况

调用 info() 函数来查看数据data的基本情况,包括数据维度,字段名称和类型以及有无缺失值,数据占用内存等。(以下为部分字段信息)

可见总的数据47447行,少于此数值的为有数据缺失。

 

 2、查看数据基本统计信息

data_des = data.describe(include='all')

可以从基本信息中粗略的观察数据情况: 

 

3、是否违约特征分析

使用pandas中的plot()函数绘制特征 ‘违约’ 分布状况。

这一步主要目的是看数据集label分布是否是平衡的,即是否未违约人数明显多于违约人数。

import pandas as pd
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8,6))
# 绘制柱状图,查看违约关系的取值分布情况
data['Default'].value_counts(dropna=False).plot(kind='bar',rot=40) #不去除nan值,x轴标签旋转40度

# 在柱形上方显示计数
counts = data['Default'].value_counts(dropna=False).values
for index, item in zip([0,1,2], counts): 
    plt.text(index, item, item, ha="center", va= "bottom", fontsize=12) 

# 设置柱形名称

plt.xticks([0,1,2],['未违约','违约','NaN'])
# 设置x、y轴标签

plt.xlabel("是否违约")
plt.ylabel("客户数量")
# 设置标题以及字体大小
plt.title("违约与未违约数量分布图",size=13)

# 设置中文显示
plt.rcParams['font.sans-serif']=['SimHei'] 
plt.rcParams['font.family']=['sans-serif']
plt.show()

 

4、分析数据中某个离散型数据字段与标签值(是否违约)之间的关系(以CityId字段为例)

(1)不同城市级别下不同违约情况的数量分布柱状图

(2)不同城市级别下违约率柱状图

其中标签字段为'Default'

主要使用了 sns.countplot(),其中hue='Default'是按照标签进行分类

import seaborn as sns
import matplotlib.pyplot as plt

fig,
### 使用 Hive 进行网约车大数据项目的分析 #### 方法概述 Hive 是一种基于 Hadoop 的数据仓库工具,能够高效地查询分析大规模结构化数据。对于网约车大数据项目,可以利用 Hive 提供的 SQL 查询功能完成数据清洗、聚合以及复杂模式识别的任务。 以下是使用 Hive 对网约车数据进行分析的具体方法: 1. **创建数据表** 首先需要定义一个用于存储网约车数据数据库 `trafficdata` 并在其下创建相应的表来保存原始数据其他中间结果。 创建数据库命令如下: ```sql CREATE DATABASE IF NOT EXISTS trafficdata; USE trafficdata; ``` 接着按照实际需求设计表格结构。例如,创建订单详情表 `createorder` 可以采用以下语句[^4]: ```sql CREATE TABLE createorder ( companyid STRING, address STRING, districtname STRING, orderid STRING, departtime STRING, ordertime STRING, departure STRING, deplongitude STRING, deplatitude STRING, destination STRING, destlongitude STRING, destlatitude STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE; ``` 2. **加载数据至 Hive 表** 原始日志文件通常位于 HDFS 上,在此之前需确保这些文件已上传到指定路径 `/opt/hive/warehouse/trafficdata.db/createorder`. 加载完成后即可执行后续操作。 3. **统计成功订单中的热门路线** 利用 HiveSQL 统计出行频率最高的几条线路是一项常见任务。假设每笔交易都包含起点坐标(deplongitude,deplatitude) 终点坐标(destlongitude,destlatitude),那么可以通过分组加排序实现这一目的[^2]: ```sql INSERT OVERWRITE TABLE orderline SELECT CONCAT_WS('->', deplongitude, deplatitude), COUNT(*) as cnt FROM createorder WHERE status='success' GROUP BY deplongitude, deplatitude ORDER BY cnt DESC LIMIT 5; ``` 4. **探索取消原因分布** 类似于前面提到的成功行程分析方式,我们也可以针对那些被终止的服务请求展开研究。比如找出最常见的十类拒绝服务的理由[^3] : ```sql SELECT reason, count(reason) total_count FROM cancelreasons GROUP BY reason ORDER BY total_count DESC LIMIT 10; ``` 5. **导出结果给关系型数据(MySQL)** 当某些报表或者仪表盘需要用到最终汇总后的数值时,则有必要借助 Sqoop 工具把它们迁移到外部的关系型管理系统里去以便进一步展示或共享[^3]. 下面给出了一段简单的 sqoop 导入脚本样例: ```bash sqoop export \ --connect jdbc:mysql://localhost:3306/trafficdata \ --username root \ --password secret_password \ --export-dir /path/to/exported/data/in/HDFS \ --table target_table_name_in_mysql \ --fields-terminated-by '|'; ``` 以上就是关于如何运用 Apache Hive 技术栈来进行网约车领域的大规模数据分析的一些基本介绍及其实践案例分享。 ```python # Python 脚本示例:自动化运行 HiveQL 脚本 from pyhive import hive conn = hive.Connection(host="localhost", port=10000, username="hdfs") cursor = conn.cursor() query = """ SELECT * FROM createorder LIMIT 10; """ cursor.execute(query) for result in cursor.fetchall(): print(result) ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值