• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE),hivenotin

hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE),hivenotin

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE),hivenotin等服务器相关知识,网友希望可以进行参考

hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE),hivenotin


前言:Hive ql自己设计总结
1,遇到复杂的查询情况,就分步处理。将一个复杂的逻辑,分成几个简单子步骤处理。
2,但能合在一起的,尽量和在一起的。比如同级别的多个concat函数合并一个select

也就是说,字段之间是并行的同级别处理,则放在一个hive ql;而字段间有前后处理逻辑依赖(判断、补值、计算)则可分步执行,提前将每个字段分别处理好,然后进行相应的分步简单逻辑处理。

一、 场景:日志中region数据处理(国家,省份,城市)
select city_id,province_id,country_id
from wizad_mdm_cleaned_hdfs
where city_id = '' or country_id = '' or province_id = ''
group by city_id,province_id,country_id
二 、发现日志中有空数据:
38              1      
        73      1      
        75      1      
64      81             
        76      1      
                      (全空)
        77         
三、设定过滤逻辑
if country_id='' 
         if province_id != '' then 
                   if city_id = '' thenCONCAT('region_','1','_',province_id)
                   elseCONCAT('region_','1','_',province_id,'_',city_id)
         else 
                   if city_id != '' thenCONCAT('region_','1','_',parent_region_id,'_',city_id)
else
         if province_id='' 
                   if city_id !='' thenCONCAT('region_',country_id,'_',parent_region_id,'_',city_id)
四、hive ql实现
SET mapred.queue.names=queue3;
SET mapred.reduce.tasks=14;
DROP TABLE IF EXISTS test_lmj_mdm_tmp1;
CREATE TABLE test_lmj_mdm_tmp1 AS
SELECT
guid,
(CASE country_id
WHEN '' THEN (CASE WHEN province_id='' THENIF(city_id = '','',CONCAT('region_','1','_',parent_region_id,'_',city_id)) ELSEIF(city_id='',CONCAT('region_','1','_',province_id),CONCAT('region_','1','_',province_id,'_',city_id))END)
ELSE (CASE when province_id='' THENIF(city_id='',CONCAT('region_',country_id),CONCAT('region_',country_id,'_',parent_region_id,'_',city_id))ELSE IF(city_id = '', CONCAT('region_',country_id,'_',province_id),CONCAT('region_',country_id,'_',province_id,'_',city_id))END)
END )AS region,
(CASE connection_type WHEN '2' THENCONCAT('carrier_','wifi') ELSE CONCAT('carrier_',c.element_id) END) AS carrier,
SUM(CASE WHEN logtype = '1' THEN 1 ELSE 0END) AS imp_pv,
SUM(CASE WHEN logtype = '2' THEN 1 ELSE 0END) AS clk_pv
FROM wizad_mdm_cleaned_hdfs a
left outer joinwizad_mdm_dev_lmj_ad_campaign_industry_brand b
ON (a.wizad_ad_id = b.ad_id)
left outer join (SELECT * FROMwizad_mdm_dev_lmj_mapping_table_analytics WHERE TYPE = '7') c
ON (a.adn_id = c.ad_network_id ANDa.carrier_id = c.mapping_id)
left outer j
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE),hivenotin

相关文章

  • 如何动态地给vSphere虚拟机模板注入信息,vsphere虚拟机
  • openstack中Nova组件Networks的所有python API 汇总,openstacknova
  • hive 实现job并发执行,hive实现job并发
  • Hadoop源码分析----RPC反射机制,hadoop----rpc
  • spark streaming kafka1.4.1中的低阶api createDirectStream使用总结,directstream
  • MongoDB Query 的几个方法,mongodbquery
  • 大师Geoff Hinton关于Deep Neural Networks的建议,geoffhinton
  • Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理表空间,hadoop-14-
  • 机器学习基础,学习基础
  • Hadoop之——Partitioner编程,hadooppartitioner

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • MapReduce编程之实现多表关联,mapreduce编程关联
    • <转>云主机配置OpenStack使用spice的方法,openstackspice
    • Spark DataFrame小试牛刀,sparkdataframe小试
    • 学习札记:CISCO云计算,札记cisco云计算
    • CSR1000V在XenServer的安装和简单使用,csr1000vxenserver
    • HIVE的数据存储,HIVE数据存储
    • Flocker浅析与Docker插件(3),flockerdocker
    • HDFS小文件的合并优化
    • Hive Developing,hivedeveloping
    • Apache Flink简介,apacheflink简介

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有