一、关于使用函数的一些小方法

  1. 显示系统自带所有函数
    show functions;
  2. 描述指定函数的作用
    desc function 函数名;
  3. 描述函数的详情信息(一般是都是有例子的)
    desc function extended 函数名;

二、函数NVL,相当于mysql中的lfnull
格式:NVL(列表名,用来替换null的值)

三、case when
格式:
case 列表名 when 表中的一个值 then 替代他的值 else 另外一个值 end
总体类似于三元运算符
如一列性别的数据均为男女,可以改写为
sum(case sex when ‘男’ then 1 else 0 end) male_count,
sum(case sex when ‘女’ then 1 else 0 end) female_count
用来分别计算男女数目

四,行转列,连接多列变成一列
concat
1,select concat(empno,’-’,ename,’-’,sal,’-’,deptno) from emp; 可以自己设置连接符

2,CONCAT_WS(separator, str1, str2,…):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;
注意:CONCAT_WS must be “string or array”

3,collect_set(对结果集去重):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。
collect_list(不对结果集去重):函数只接受基本数据类型,它的主要作用是将某字段的值进行不去重汇总,产生array类型字段。
注,是对某字段

可以通过collect_set或者collect_list产生string数组来配合concat_ws 使用

当我们对一个东西分组时,只能计算它的聚合函数
如,我们对部门分组,可以通过count(*)直接计算部门总人数,这时可以通过collect对分组后的一个部门将其数据转化为一个数组
举例:


四,列转行

Split(str, separator):将字符串按照后面的分隔符切割,转换成字符array。
EXPLODE(col):将hive一列中复杂的array或者map结构拆分成多行。
比如一个数据:悬疑,动作,科幻,剧情
我们可以通过split将其转化为数组,再将数组变成行

explode(split(category,","))

变成
lateral view首先为原始表的每行调用UDTF,UDTF会把一行拆分成一或者多行,lateral view再把结果组合,产生一个支持别名表的虚拟表。

所以最终使用方法:

lateral VIEW explode(split(category,",")) movie_info_tmp  AS category_name ;
注:如果category本身就是一个string数组就不需要用split来将他切割

Hive中除了窗口函数外的常用函数:casewhen,行转列,列转行相关推荐

  1. common.php中路径,关于ThinkPHP中Common/common.php文件常用函数的功能分析

    这篇文章主要介绍了ThinkPHP中Common/common.php文件常用函数功能,通过注释的形式详细分析了C方法.tag方法.B方法及autoload方法的功能与代码原理,需要的朋友可以参考下 ...

  2. php用于字符串函数是,php中用于查找字符串的常用函数

    php中用于查找字符串的常用函数,包括strstr.stristr.strpos.substr等,本文主要为大家介绍strstr的使用,感兴趣的朋友不妨参考下. 一.strstr  查找字符串的首次出 ...

  3. hive(四)Hive中的窗口函数

    目录 一.后台启动Hive的JDBC连接 1.关闭后台启动的jdbc 2.Hive中的wordcount实例 二.Hive窗口函数 1.with as 用法 2.集合函数 3.行列互换 4.LATER ...

  4. Day58 Hive中的窗口函数

    后台启动Hive的JDBC连接 0表示标准输入,1表示标准输出,2表示标准错误输出,nohup表示挂起,&表示后台启动 nohup hive --service hiveserver2 > ...

  5. 【pickle】详解python中的pickle模块(常用函数、示例)

    1.序列化.反序列化介绍 序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 2.pickle模块说明 python中的pickle模块实现 ...

  6. 计算机二级vf中字符,计算机二级VFP常用函数使用技巧探讨

    摘要:掌握VFP常用函数使用技巧对学生非常重要,在二级考试中,函数使用频繁,贯穿整个考试,不论是表创建的索引建立.还是查询的字段构造以及表单控件的函数表示,都离不开函数的使用.为了让学生理清这部分思路 ...

  7. excel中线性函数_Excel中特别有用的不常用函数之Indirect函数

    今天介绍一下Indirect函数.这个函数属于特别有用的一个函数,但是很多人并不太了解它的作用.今天我们就详细介绍一下. 01 INDIRECT函数的工作方式 这个函数的语法特别简单: INDIREC ...

  8. python中re模块的函数_python中的re模块,常用函数介绍

    参考: http://www.cnblogs.com/tina-python/p/5508402.htm ======== 1,预定义字符集,可以写在字符集[....]中 \d  数字: \D 非数字 ...

  9. hive中的lateral view 与 explode函数的使用

    explode与lateral view在关系型数据库中本身是不该出现的,因为他的出现本身就是在操作不满足第一范式的数据(每个属性都不可再分), 本身已经违背了数据库的设计原理(不论是业务系统还是数据 ...

  10. HIVE 中 内连接 外连接 左外连接 右外连接 全外连接 联合操作

    hive的join操作,只支持等值连接 创建customers和orders表,一对多关系 创建customers表 create table customers(id int,name string ...

最新文章

  1. mbr,gpt,开机启动流程.
  2. lisp封装成vla函数_Lisp List 和函数式编程 (in Python)
  3. 数据结构上机测试1:顺序表的应用
  4. 学习python:练习3.随机生成200个序列号存入文件
  5. 软件项目管理的内在定律
  6. [Swift]LeetCode382. 链表随机节点 | Linked List Random Node
  7. 【Python】 Python 基础
  8. Java8新特性_接口中的默认方法
  9. 常用SQL语句---备忘
  10. win11系统卡死怎么办 Windows11系统卡死的解决方法
  11. SpringBoot之第一个Restfu示例
  12. 可以检测手机帧率和温度的软件_手机帧数测试教学,含免费软件下载,使用方法,数据分析方法详解...
  13. python脚本操作excel
  14. linux 安装redies
  15. otsu阈值分割算法原理_Otsu算法
  16. 优酷kux文件转码成mp4
  17. 3.4 SQL--多表查询分组排序
  18. 百度搜索开放平台,百度搜索api
  19. DGIOT物联网平台简介
  20. MATLAB中画折线图:plot函数的简单用法

热门文章

  1. 数据库设计员工管理系统
  2. w ndows7旗舰版网卡驱动,windows7万能网卡驱动官方下载
  3. NSA黑客工具泄露 网络世界的灾难级危机如何应对?[NSA黑客工具名单]
  4. 光学计算机的工作原理,使用光学计算机的人工智能超分辨率
  5. php laravel 分页,laravel 分页问题
  6. cass转换jpg_怎么把CAD图转换成清晰的JPG等其他格式图形文件
  7. cad二次开发之无法验证该可执行文件的发布者解决方案
  8. QCC3040----SOC模块
  9. cmd运行tomcat出现乱码
  10. android nano app,实战nanoHTTPD嵌入android app(3)