组合pig和hive来进行数据分析

2023-10-31

接到产品一个任务,需要对使用产品的用户操作系统来个分析。对清洗后的hive数据进行分析,发现,数据恰恰把操作系统数据

进行了过滤,只有到rawlog里去进行数据分析了。但由于rawlog没有和数据库进行关联,就只有先对rawlog进行初步手工清洗,

不清洗掉操作系统数据,再建hive临时表来解决了。

第一步,用pig进行数据初步清洗,上代码

REGISTER 'elephant-bird-core-3.0.8.jar';
REGISTER 'elephant-bird-pig-3.0.8.jar';
set default_parallel 6;
org = load '/rawlog/vv/201503/*' using PigStorage('"') as(ip,get,stat,x1,x2,agent,x3,x4);  
ff = foreach org generate get ,'#',agent;      
store ff into '/tmp/vv-tmp/' ; 

第二步,建立hive表。

CREATE EXTERNAL TABLE tmp_vv(url String, os string) 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '#'   
LOCATION  '/tmp/vv-tmp'; 

由于在日志里,看到操作系统是如下表示。

(compatible; MSIE 6.0; Windows NT 5.1; SV1)

查询了下,整理出一个相对应的需求。

Microsoft Windows XP (Windows NT 5.1) 
Microsoft Windows 7 (Windows NT 6.1) 
Microsoft Windows 8 (Windows NT 6.2) 


第四步,对hive数据进行数据统计。

分别如下

hive> select count(*)  from tmp_vv where os  like '%Windows NT x.X%' limit 10;
其中x.x就是对应的操作系统版本。

总结:本项目是一个很简单的组合pig和hive的项目。在这个项目里,进一步体会到Pig在清洗数据方面的强大性,并且处理后的数据进入数据仓库后,用hive

能很方便的进行相关的统计。同时辅以自动化的查询界面,能让业务人员更方便的进行数据查询。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组合pig和hive来进行数据分析 的相关文章

随机推荐

  • Linux安装jenv,灵活管理jdk(不同目录,采用不同的jdk)

    前文 总所周知 随着java版本的不断升级 jdk版本越来越高 但是互联网开发软件很多还维持在jdk1 8的时代 但是很多开源软件只至此java 11以上的版本 这就会导致很多程序上的不兼容或者报错 本文主要解决 linux不同目录下 采用
  • Linux下修改java.library.path

    第一步 打印出当前的java library path有哪些目录 执行 vi Test java 切换编辑模式 i 插入如下代码 public class Test public static void main String args S
  • Anaconda创建新环境,CondaHTTPError: HTTP 000 CONNECTION FAILED for url <http://mirrors.tuna.tsinghua问题解决过程

    两步即可 第一步 配置anaconda为清华源 在Anaconda Prompt终端依次执行这些命令 conda config add channels http mirrors tuna tsinghua edu cn anaconda
  • MQTT协议

    http www blogjava net yongboy category 54835 html
  • 树莓派的连接与AP局域网路由器配置

    文章目录 前言 1 树莓派的连接 1 1 本地连接 1 2 远程连接 2 AP路由器配置 2 1 配置无线局域网 2 2 配置以太网实现局域网 前言 树莓派的连接方式分为两种 本地和远程 也可以通俗的说是有本地设备还是就一台笔记本的情况 本
  • 解决:无法解析的外部符号__iob_func

    解决 无法解析的外部符号 iob func 原文 http blog csdn net hebbely article details 53780562 在使用 VS2015 下使用 libjpeg turbo 静态库 编译时报错了 cpp
  • 【用户增长】用户增长方法论及增长思维

    用户增长方法论及增长思维 1 什么是用户增长 1 1 用户增长的概念及内涵 用户增长不是简单的用户数量的增长 用户增长是一个系统化 综合化的体系 用户增长包含三个阶段的增长 综上三点 我们可以简单的将用户增长定义为 通过痛点 产品 渠道 创
  • 编写第一个Makefile(HelloWorld)

    什么是Makefile 讲makefie之前 先将将什么是make make是一个命令工具 是一个解释makefile中指令的命令工具 它可以简化编译过程里面所下达的指令 当执行 make 时 make 会在当前的目录下搜寻 Makefil
  • 建站系列(八)--- 本地开发环境搭建(WNMP)

    目录 相关系列文章 前言 一 准备工作 二 Nginx安装 三 MySQL安装 四 PHP安装及Nginx配置 五 总结 相关系列文章 建站系列 一 网站基本常识 建站系列 二 域名 IP地址 URL 端口详解 建站系列 三 网络协议 建站
  • ServletConfig对象

    目录 一 ServletConfig对象定义 二 ServletConfig对象作用 三 ServletConfig中的方法 一 ServletConfig对象定义 ServletConfig是什么 ServletConfig是一个接口 位
  • 3. 无重复字符的最长子串

    给定一个字符串 s 请你找出其中不含有重复字符的 最长子串 的长度 示例 1 输入 s abcabcbb 输出 3 解释 因为无重复字符的最长子串是 abc 所以其长度为 3 示例 2 输入 s bbbbb 输出 1 解释 因为无重复字符的
  • [转]iPhone多渠道自动打包Shell脚本介绍

    转 iPhone多渠道自动打包Shell脚本介绍 摘要 随着苹果手持设备用户的不断增加 ios应用也增长迅速 同时随着iphone被越狱越来越多的app 的渠道也不断增多 为各个渠道打包成了一件费时费力的工作 本文提供一种比较智能的打包方式
  • Java方法递归的简单例题

    目录 递归 1 递归求N 的阶乘和递归求1 2 3 4 n 2 按顺序打印一个数字的每一位 3 斐波那契数列和青蛙跳台阶问题 4 汉诺塔问题 递归 递归 简单来说 就是方法自己调用自己的过程 那要怎么样去实现递归呢 首先 我们需要去根据条件
  • 单页面(SPA)与服务端渲染(SSR),概念、区别,优缺点

    单页面 SPA 与服务端渲染 SSR 概念 区别 优缺点 什么是单页面应用 什么是多页面应用 二者有什么区别 1 单页面应用与多页面应用 单页面顾名思义就是整个应用只有一个Html页面 页面的切换其实是组件的切换 这样设计的好处就是不进行页
  • 多元回归分析

    多元回归分析 RF随机森林多输入单输出预测及变量重要度衡量 Matlab完整程序 目录 多元回归分析 RF随机森林多输入单输出预测及变量重要度衡量 Matlab完整程序 预测结果 评价指标 基本介绍 程序设计 参考资料 预测结果 评价指标
  • 进程——wait函数

    wait 的函数原型是 include
  • 使用Vue-Cli4.x配置文件路径别名

    vue脚手架版本升级到4 x以后 目录发生了很大的变化 有些配置需要我们自己去配置 自己项目中的目录结构 在根目录创建一个 vue config js文件 配置一下引入文件路径的别名 const path require path cons
  • C++报错 invalid operands to binary expression

    invalid operands to binary expression 二进制表达式的操作数无效 顾名思义 错误出在操作符上 对类型的操作问题 比如两种不能比较的类型进行了比较 比如我这里
  • 剑指Offer第三十一题:整数中1出现的次数(从1到n整数中1出现的次数)

    题目描述 求出1 13的整数中1出现的次数 并算出100 1300的整数中1出现的次数 为此他特别数了一下1 13中包含1的数字有1 10 11 12 13因此共出现6次 但是对于后面问题他就没辙了 ACMer希望你们帮帮他 并把问题更加普
  • 组合pig和hive来进行数据分析

    接到产品一个任务 需要对使用产品的用户操作系统来个分析 对清洗后的hive数据进行分析 发现 数据恰恰把操作系统数据 进行了过滤 只有到rawlog里去进行数据分析了 但由于rawlog没有和数据库进行关联 就只有先对rawlog进行初步手