Hive典型案例详解------------实现项目中的MapReduce数据清洗阶段和Hive数据处理阶段(资料链接在最后)

本文介绍了联想茄子快传app的用户行为数据分析系统的开发过程,涉及MapReduce数据清洗和Hive的数据处理。通过ETL流程,清洗数据并计算每日活跃用户和新增用户,然后将新增用户加入历史记录表,并按时间、城市、渠道和版本等维度进行统计分析。
摘要由CSDN通过智能技术生成

1.数据ETL综合案例()
需求:联想集团有一款app产品叫茄子快传(有上亿的活跃用户,集中在第三世界国家)
现在需要开发一个数据分析系统,来对app的用户行为数据做各类分析;
下面的是整个的过程:
这里写图片描述
涉及到MapReduce和Hive的只有数据清洗和Hive的运算处理

需求

{
      "header": {
        "cid_sn": "1501004207EE98AA",   sdn码
        "mobile_data_type": "",
        "os_ver": "9",                  操作系统
        "mac": "88:1f:a1:03:7d:a8",     物理地址
        "resolution": "2560x1337",      分辨率
        "commit_time": "1473399829041", 提交时间
        "sdk_ver": "103",               sdk版本
        "device_id_type": "mac",        设备类型
        "city": "江门市",              城市
        "android_id": "",               安卓设备的安卓id
        "device_model": "MacBookPro11,1",设备型号
        "carrier": "中国xx",          运营商
        "promotion_channel": "1",       推广渠道
        "app_ver_name": "1.7",          app版本号
        "imei": "",                     入网表示
        "app_ver_code": "23",           公司内部版本码
        "pid": "pid",
        "net_type": "3",                网络类型
        "device_id": "m.88:1f:a1:03:7d:a8", 设备ip
        "app_device_id": "m.88:1f:a1:03:7d:a8",
        "release_channel": "appstore",  发布渠道
        "country": "CN",
        "time_zone": "28800000",        时区编码
        "os_name": "ios",               操作系统类型
        "manufacture": "apple",         生产厂家
        "commit_id": "fde7ee2e48494b24bf3599771d7c2a78", 事件标示
        "app_token": "XIAONIU_I",       app标示
        "account": "none",              登陆账号
        "app_id": "com.appid.xiaoniu",  app组名
        "build_num": "YVF6R16303000403",    编译号
        "language": "zh"                    系统所使用语言
    }
}

1、数据预处理(数据清洗)
  --》 release_channel,device_id,city,device_id_type,app_ver_name  这几个字段如果缺失,则过滤
  --》 将数据整成   字段,字段,字段,...... 这种形式
  --》 在每条数据中添加一个字段:user_id(值就是device_id)

2、导入hive中的表的天分区  
每天的活跃用户,新增用户




3、进行数据统计分析
每天的新增用户 --》 事实
维度   --》 各种组合

版本       渠道       城市        设备     新增用户数
所有       所有       所有        所有        21949382
所有       所有       所有        具体设备      xxx
所有       所有       具体城市    所有          yyyy
所有       具体渠道   所有        所有         yyyy
具体版本    所有      所有        所有          zzz
具体版本   具体渠道   所有        所有          zzz

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

1.数据清洗


import java.io.IOException;

import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

/**
 * 用来清理log日志信息的
 * 
 * @author 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值