Hive高级应用
来源:互联网 发布:大数据分析和数据挖掘 编辑:程序博客网 时间:2024/06/01 20:03
单行变多行
假设有个表有两个字段
key val1_val2_val3_val4_val5想把第二个字段以“_”为分隔符切割成多行,如下:
key val1
key val2
key val3
key val4
key val5
第二个字段包含的“_”不确定
代码如下:
- select
- col1,
- col2_sub
- from (
- --以下替换成性感的原始表
- select
- 'key' as col1,
- 'val1_val2_val3_val4_val5' as col2
- from dual
- ) t
- lateral view explode(split(col2, '_')) result_table as col2_sub
reflect函数
reflect()函数可以使用java已有的函数,如
select reflect('java.lang.Math', 'sqrt', 4) from dual;
count函数
count函数在作统计运算时,会把空值(NULL)排除在外,利用这一特性,可以实现某些较为复杂的计数需求。
有如下数据(表名为booksource):
其中第14条记录的book字段值为空值(NULL)。我们的需求是,计算source=1的book有多少种(不重复)。实现的方式是count+distinct+case when组合,代码如下:
- select
- count(distinct case when source = 1 then book else null end) as num
- from booksource;
输出结果为4。
0 0
- Hive高级应用
- Hive高级应用
- hive 高级结构
- Hive 高级编程
- hive初级、进阶、高级
- Hive 函数高级编程
- hive 高级数据类型使用
- hive高级查询
- Hive高级函数
- Hive基础到高级
- Hive学习笔记之--Hive 高级编程
- Hive学习之Hive高级编程
- 高级应用
- hive学习笔记-高级查询
- 08-Hive高级查询join
- Hive高级进阶与优化
- Hive的高级聚合函数
- HIVE高级与企业优化
- 下拉搜索 bootstrap combox 搜索建议插件
- 自定义View(二)
- Java中final、finally、finalize的区别
- Android回调机制
- Ext清空panel中元素的问题
- Hive高级应用
- 700MHz频段之争:广电vs通信的乱局
- Java多线程(三)——线程挂起、恢复、终止
- Ubuntu下,卸载 / 安装Redis / 导出导入数据
- navigator
- 函数的工作原理
- webview 长按选择复制
- eclipse提示adt版本过低
- Ext 动态生成checkbox及清除的解决方法