Hive的存储和MapReduce处理——数据清洗
日期:2019.11.13
博客期:115
星期三
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、数据处理:
·统计最受欢迎的视频/文章的Top10访问次数 (video/article)
·按照地市统计最受欢迎的Top10课程 (ip)
·按照流量统计最受欢迎的Top10课程 (traffic)
3、数据可视化:将统计结果倒入MySql数据库中,通过图形化展示的方式展现出来。
制作:
A、基础数据Bean类
package com.hive.basic; import com.hive.format.IPUtil;
import com.hive.format.TimeUtil; public class Bean {
protected String ip;
protected String time;
protected String day;
protected int traffic;
protected String type;
protected String id;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getTime() {
return time;
}
public String getDay() {
return day;
}
public void setDay(String day) {
this.day = day;
}
public void setTime(String time) {
this.time = time;
}
public int getTraffic() {
return traffic;
}
public void setTraffic(int traffic) {
this.traffic = traffic;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Bean(String ip, String time, String day , int traffic, String type, String id) {
super();
this.ip = ip;
this.time = time;
this.day = day;
this.traffic = traffic;
this.type = type;
this.id = id;
}
public Bean() {
super();
// TODO 自动生成的构造函数存根
}
/*格式转换*/
public void format(){
this.ip = IPUtil.getCityInfo("106.39.41.166").split("\\|")[3].replace("市","");
this.time = TimeUtil.deal(this.time);
}
public void display(){
System.out.println(ip+","+time+","+day+","+traffic+","+type+","+id);
}
}
Bean.java
B、日期格式转化类
package com.hive.format; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale; public class TimeUtil {
public static String deal(String time){ SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.ENGLISH);
Date dd = null;
try {
dd = sdf.parse(time);
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} //将字符串改为date的格式 String resDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dd); return resDate;
}
public static void main(String[] args) throws ParseException { String dateString = "10/Nov/2016:00:01:02 +0800";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.ENGLISH);
Date dd = sdf.parse(dateString); //将字符串改为date的格式
String resDate= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dd);
System.out.println(resDate);
}
}
TimeUtil.java
Hive的存储和MapReduce处理——数据清洗的更多相关文章
- Hive的存储和MapReduce处理——数据清洗(Part2)
日期:2019.11.14 博客期:116 星期四 基本的处理类 import java.sql.Connection; import java.sql.DriverManager; import j ...
- Hive的存储和MapReduce处理——数据清洗(Part3)
日期:2019.11.17 博客期:118 星期日 这几天在写程序的时候虚拟机崩了,无语~所以重新从最初的状态开始配环境,重新整理之前的所有代码程序.
- 升级版:深入浅出Hadoop实战开发(云存储、MapReduce、HBase实战微博、Hive应用、Storm应用)
Hadoop是一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系 ...
- Hive| 压缩| 存储| 调优
Hadoop压缩配置 修改Hadoop集群具有Snappy压缩方式: 查看hadoop支持的压缩方式 [kris@hadoop101 datas]$ hadoop checknative 将编译好的支 ...
- spark2.1:读取hive中存储的多元组(string,double)失败
这两天和同事一起在想着如何把一个表的记录减少,表记录包含了:objectid(主小区信息),gridid(归属栅格),height(高度),rsrp(主小区rsrp),n_objectid(邻区),n ...
- hive优化之调整mapreduce数目
一.调整hive作业中的map数 1.通常情况下,作业会通过input的目录产生一个或者多个map任务.主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为1 ...
- Hive快捷查询:不启用Mapreduce job启用Fetch task
启用MapReduce Job是会消耗系统开销的.对于这个问题,从Hive0.10.0版本开始,对于简单的不需要聚合的类似SELECT <col> from <table> L ...
- Hive基础之Hive的存储类型
Hive常用的存储类型有: 1.TextFile: Hive默认的存储类型:文件大占用空间大,未压缩,查询慢: 2.Sequence File:将属于以<KEY,VALUE>的形式序列化到 ...
- HIve数据存储
表 Table 内部表 Partition 分区表 External Table 外部表 Bucket Table 桶表 内部表 分区表 parttion对应于数据库中的Partition列的密集索引 ...
随机推荐
- Spring IoC(三)bean属性、方法注释
1.环境配置 使用注解开发jdk1.5.Spring2.5支持,在xml中添加context相关的是四个配置; <beans default-lazy-init="true" ...
- pandas库笔记
本笔记为自学笔记 1.pandas.DataFrame() 一种保存矩阵的数据格式 grades_df = pd.DataFrame( data={'exam1': [43, 81, 78, 75, ...
- StatelessWidget 无状态组件 StatefulWidget 有状态组件 页面上绑定数据、改变页面数据
一.Flutter 中自定义有状态组件 在 Flutter 中自定义组件其实就是一个类,这个类需要继承 StatelessWidget/StatefulWidget. StatelessWidget ...
- markdown简1
1.使用 = 和 - 标记一级和二级标题 = 和 - 标记语法格式如下: 我展示的是一级标题 ================= 我展示的是二级标题 ----------------- 我展示的是一级 ...
- 基于SILVACO ATLAS的a-IGZO薄膜晶体管二维器件仿真(04)
在eetop上有好多好东西啊: Silvaco_TCAD_中文教程1 不过这个教程里是Linux系统的,而且工艺仿真占了比较大的篇幅. defect region=1 nta=5e17 wta=0.1 ...
- python基础(一)--python介绍
1. Python语言 1.1 编程语言 语言是人类最重要的交际工具,是人类之间进行信息交换的主要表达方式. 编程语言是用来定义计算机程序的语言,用来向计算机发出指令. 1.2 Python语言 Py ...
- javascript的正则匹配
前段时间需要用到比较多的js代码,当时有点搞不清test和match方法的区别,向百度求助,找到了这边关于正则匹配的博文,感谢作者分享. 原文地址[http://blog.sina.com.cn/s/ ...
- Spring Boot 缓存应用 Ehcache 入门教程
Ehcache 小巧轻便.具备持久化机制,不用担心JVM和服务器重启的数据丢失.经典案例就是著名的Hibernate的默认缓存策略就是用Ehcache,Liferay的缓存也是依赖Ehcache. 本 ...
- java 基础--8 种基本数据类型:整型、浮点型、布尔型、字符型 整型中 byte、short、int、long 的取值范围 什么是浮点型?什么是单精度和双精度?为什么不能用浮点型表示金额?
一.8种基本数据类型(4整,2浮,1符,1布): 整型:byte(最小的数据类型).short(短整型).int(整型).long(长整型): 浮点型:float(浮点型).double(双精度浮点 ...
- 安装oracle11g跳不过下载软件更新[INS-30131] 执行安装程序验证所需的初始设置失败
链接:https://www.jb51.net/article/88944.htm 问题已解决: 解决方法 第一步: 控制面板>所有控制面板项>管理工具>服务>SERVER 启 ...