当前位置: 首页 > news >正文

2023 级课堂测试试卷—数据分析

课程名称: 大型数据库应用技术 任课教师: 孙静 考试时间: 90 分钟

Result文件数据说明:
Ip:106.39.41.166,(城市)
Date:10/Nov/2016:00:01:02 +0800,(日期)
Day:10,(天数)
Traffic: 54 ,(流量)
Type: video,(类型:视频video或文章article)
Id: 8701(视频或者文章的id)
测试要求:
1、 数据清洗:按照进行数据清洗,并将清洗后的数据导入hive数据库中。
两阶段数据清洗:
(1)第一阶段:把需要的信息从原始日志中提取出来
ip: 199.30.25.88
time: 10/Nov/2016:00:01:03 +0800
traffic: 62
文章: article/11325
视频: video/3235
(2)第二阶段:根据提取出来的信息做精细化操作
ip--->城市 city(IP)
date--> time:2016-11-10 00:01:03
day: 10
traffic:62
type:article/video
id:11325
(3)hive数据库表结构:
create table data( ip string, time string , day string, traffic bigint,
type string, id string )
2、数据分析:在HIVE统计下列数据。
(1)统计最受欢迎的视频/文章的Top10访问次数 (video/article)
(2)按照地市统计最受欢迎的Top10课程 (ip)
(3)按照流量统计最受欢迎的Top10课程 (traffic)
3、数据可视化:
将统计结果倒入MySql数据库中,通过图形化展示的方式展现出来。

数据集已经给好了只需要简单清洗一下就可以

这是先把原数据中有用的信息提取出来,并以,隔开


import csv
from datetime import datetime
from pathlib import PathRAW_FILE = Path("raw.csv")
OUT_FILE = Path("cleaned.csv")def parse_time(raw_time: str) -> str:# 原始格式: 10/Nov/2016:00:01:02 +0800main = raw_time.split()[0]dt = datetime.strptime(main, "%d/%b/%Y:%H:%M:%S")return dt.strftime("%Y-%m-%d %H:%M:%S")def clean(in_path: Path = RAW_FILE, out_path: Path = OUT_FILE) -> None:with in_path.open("r", encoding="utf-8", newline="") as fin, \out_path.open("w", encoding="utf-8", newline="") as fout:reader = csv.reader(fin)writer = csv.writer(fout)for row in reader:# 结构校验if len(row) != 6:continueip, raw_time, day, traffic, typ, _id = (c.strip() for c in row)# 类型/id 过滤if typ not in ("video", "article"):continueif not _id.isdigit():continue# 解析时间与流量try:time_fmt = parse_time(raw_time)traffic_val = int(traffic.replace(" ", ""))except Exception:continuewriter.writerow([ip, time_fmt, day, traffic_val, typ, _id])if __name__ == "__main__":clean()print(f"done: {OUT_FILE}")

需要下载
GeoLite2-City.mmdb才可以把坐标转换为城市的名字
下载地址
https://gitcode.com/open-source-toolkit/94ce3/tree/main

再清洗一遍,把地址转换为城市的名字


import csv
from pathlib import Path
import geoip2.databaseCLEANED_FILE = Path("cleaned.csv")
ENRICHED_FILE = Path("enriched.csv")
GEOIP_DB = Path("GeoLite2-City.mmdb")  # 请将库文件放在同目录或改为绝对路径def ip_to_city(reader):try:return reader.city.name or "UNKNOWN"except Exception:return "UNKNOWN"def enrich(cleaned=CLEANED_FILE, out=ENRICHED_FILE, geo_db=GEOIP_DB):if not geo_db.exists():raise FileNotFoundError(f"GeoIP DB not found: {geo_db}")reader = geoip2.database.Reader(str(geo_db))with cleaned.open("r", encoding="utf-8", newline="") as fin, \out.open("w", encoding="utf-8", newline="") as fout:r = csv.reader(fin)w = csv.writer(fout)for row in r:if len(row) != 6:continueip, ts, day, traffic, typ, _id = rowtry:city = reader.city(ip).city.name or "UNKNOWN"except Exception:city = "UNKNOWN"w.writerow([ip, ts, day, traffic, typ, _id, city])reader.close()print(f"done -> {out}")if __name__ == "__main__":enrich()

需要提前配置好hive,用datagrip将清洗的数据上传到hive中
image
根据需求生成sql语句,交给hive执行mapreduce语句,我这个虚拟机分配的内存比较少,主4GB,从1GB,从1GB
用了5-6分钟才计算出来,我还以为没连接好,可以把内存分配的多一些,这样就不需要等太长时间了,我没有装sqoop所以是手动导入mysql的,生成sql语句到mysql数据库,最后使用html可视化,因为数据量还是不大,所有可以这么做,数据大就必须用sqoop来传输运算结果了

295f98d5d37a249ed99892b6a7c48827
5b3c51fa1380bc1baf8909c79d76c2fe
3e93e3ab27140e176d46f55df2c78d76

image

http://www.jsqmd.com/news/123654/

相关文章:

  • 2025年12月涂装线生产,静电喷涂线,涂装线设备公司推荐:涂装产线测评与选择指南 - 品牌鉴赏师
  • 2025年12月气模水上闯关,气模城堡,气模滑梯厂家公司推荐:充气游乐行业测评与选择指南 - 品牌鉴赏师
  • 北京海淀靠谱交通事故律师事务所排行榜(2025-2026公正测评)专业测评与性价比 - 苏木2025
  • 【独家披露】国家极地项目背后的AI引擎:Open-AutoGLM是如何做到全天候稳定的?
  • GitHub 一周热门项目速览 | 2025年12月22日
  • 极地科考AI部署难题,如何用Open-AutoGLM实现零故障运行?
  • 【Java毕设源码分享】基于springboot+vue的的学生作业管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • URI和URL的区别
  • 政企AI服务系统:技术落地的核心,是帮客户解决真问题
  • 2025脂肪酸值测定仪性价比榜:全自动脂肪酸值测定仪怎么选?这3家靠谱品牌闭眼入 - 品牌推荐大师1
  • 2025年北京校考培训机构排名:比较好的资质齐全的校考培训机构推荐有哪些? - mypinpai
  • 2025年信誉好的长城润滑油公司推荐,诚信的长城润滑油专业公司全解析 - myqiye
  • 实用指南:安卓多种通知ui更新的方式(livedata,rxjava,eventbus等)
  • 揭秘手机无线调试黑科技:如何3分钟快速连接Open-AutoGLM?
  • 办公家具生产厂产品质量哪家好?办公家具加工厂哪家合作案例多? - mypinpai
  • springboot高校教材征订管理系统_2ex65ua5
  • MySQL面试题合集!
  • ELK 保姆级部署教学
  • 脑机接口辅助新纪元(Open-AutoGLM实战指南)
  • 2025全品类仿古砖制造厂TOP5权威推荐:甄选优质厂商助力空间美学升级 - myqiye
  • 2025浙江职业技能大赛复赛(一小部分
  • 2025总有机碳分析仪采购推荐:从国产品牌实力到厂家口碑的全维度盘点 - 品牌推荐大师1
  • 2025年豆包优化服务商精选推荐:优质geo优化伙伴赋能增长 - 品牌推荐排行榜
  • 【Java毕设源码分享】基于springboot+vue的的文学名著分享系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • Interactive Brokers全新改版IBKR GlobalTrader应用,移动交易体验更简洁、更智能
  • 水蛭素哪个牌子好?水蛭素改善血黏稠度,2025十大水蛭素品牌横评 - 博客万
  • 2025年进口曲轴泵厂商权威推荐榜单:高压清洗机配件/进口高压水泵/进口高压清洗车源头厂家精选 - 品牌推荐官
  • 2025百度AI优化排名服务商推荐:聚焦geo优化的实力之选 - 品牌推荐排行榜
  • MySQL相关面试题总结
  • 收藏!大模型学习全攻略:从0起步到实战落地,小白/程序员专属