Hive 常用函数案例测试

数据准备:

zhangsa	dfsadsa323	new	67.1	2
lisi	543gfd	old	43.32	1
wanger	65ghf	new	88.88	3
liiu	fdsfagwe	new	66.0	1
qibaqiu	fds	new	54.32	1
wangshi	f332	old	77.77	2
liwei	hfd	old	88.44	3
wutong	543gdfsd	new	56.55	6
lilisi	dsfgg	new	88.88	5
qishili	fds	new	66.66	5

关系运算: 

  • String的比较需要注意(常用的时间比较可以先使用to_date()之后再进行比较)
     


##注意: String 的比较要注意(常用的时间比较可以先 to_date 之后再比较)
select long_time>short_time, long_time<short_time,long_time=short_time, to_date(long_time)=to_date(short_time)
from 
(
    select '2017-01-11 00:00:00' as long_time, '2017-01-11' as short_time

)bb;

result:
true    false   false   true
  • Like与rlike、regexp

  • LIKE

    语法: A LIKE B
    描述: 字符串A符合表达式B的正则语法,则为TRUE;否则为FALSE. B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。
     

    select * from order_detail where device_id like 'fd_' and device_id like '%ds';  
    
    
    结果:
    
    1    qibaqiu	fds    new    54    1    
    2    qishili	fds    new    67	5

     

  • RLIKE

    语法: A RLIKE B
    描述: 字符串A符合JAVA正则表达式 B 的正则语法,则为 TRUE;否则为 FALSE。

  • REGEXP

    语法: A REGEXP B
    描述: 功能与 RLIKE 相同

集合统计函数:

  • 个数统计:count 总和统计:sum
    • 语法: count(*), count(expr), count(DISTINCT expr[, expr_.])
      • 说明:
        count(*)统计检索出的行的个数,包括 NULL 值的行;
        count(expr)返回指定字段的非空值的个数;
        count(DISTINCT expr[, expr_.])返回指定字段的不同的非空值的个数
    • sum(col), sum(DISTINCT col)
      • 说明: sum(col)统计结果集中 col 的相加的结果; sum(DISTINCT col)统计结果中 col 不同值
select 
count(*),count(user_type),count(distinct user_type),
sum(sales),sum(distinct sales)
from order_detail; 
  • 平均值统计:avg 最小值统计:min 最大值统计:max
  • 标准差:stddev_samp, stddev, stddev_pop
    • stddev_pop <==> stddev
  • 方差:var_samp, var_pop
    • 当我们需要真实的标准差/方差的时候最好是使用: stddev stddev_pop var_pop
      而只是需要得到少量数据的标准差/方差的近似值可以选用: stddev_samp var_samp
  • 百分位数: percentile 近似百分位数: percentile_approx 直方图: histogram_numeric
    • 语法: percentile_approx(DOUBLE col, p [, B])
    • 返回值: double
    • 说明: 求近似的第 pth 个百分位数, p 必须介于 0 和 1 之间,返回类型为 double,但是col 字段支持浮点类型。参数 B 控制内存消耗的近似精度, B越大,结果的准确度越高。默认为 10,000。当 col 字段中的 distinct 值的个数小于 B 时,结果为准确的百分位数
    • 后面可以输入多个百分位数,返回类型也为 array,其中为对应的百分位数。
       

复杂类型访问操作及统计函数:

测试数据集:
tony    1338    hello,woddd     1,2     a1,a2,a3        k1:1.0,k2:2.0,k3:3.0    s1,s2,s3,4
mark    5453    kke,ladyg   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值