复合类型构建操作

1. Map类型构建: map

语法: map (key1, value1, key2, value2, …)

说明:根据输入的key和value对构建map类型

举例:

hive> Create table lxw_test as select map('100','tom','200','mary') as t from lxw_dual;

hive> describe lxw_test;

t       map<string,string>

hive> select t from lxw_test;

{"100":"tom","200":"mary"}

2. Struct类型构建: struct

语法: struct(val1, val2, val3, …)

说明:根据输入的参数构建结构体struct类型

举例:

hive> create table lxw_test as select struct('tom','mary','tim') as t from lxw_dual;

hive> describe lxw_test;

t       struct<col1:string,col2:string,col3:string>

hive> select t from lxw_test;

{"col1":"tom","col2":"mary","col3":"tim"}

3. array类型构建: array

语法: array(val1, val2, …)

说明:根据输入的参数构建数组array类型

举例:

hive> create table lxw_test as select array("tom","mary","tim") as t from lxw_dual;

hive> describe lxw_test;

t       array<string>

hive> select t from lxw_test;

["tom","mary","tim"]

十、复杂类型访问操作

1. array类型访问: A[n]

语法: A[n]

操作类型: A为array类型,n为int类型

说明:返回数组A中的第n个变量值。数组的起始下标为0。比如,A是个值为['foo', 'bar']的数组类型,那么A[0]将返回'foo',而A[1]将返回'bar'

举例:

hive> create table lxw_test as select array("tom","mary","tim") as t from lxw_dual;

hive> select t[0],t[1],t[2] from lxw_test;

tom     mary    tim

2. map类型访问: M[key]

语法: M[key]

操作类型: M为map类型,key为map中的key值

说明:返回map类型M中,key值为指定值的value值。比如,M是值为{'f' -> 'foo', 'b' -> 'bar', 'all' -> 'foobar'}的map类型,那么M['all']将会返回'foobar'

举例:

hive> Create table lxw_test as select map('100','tom','200','mary') as t from lxw_dual;

hive> select t['200'],t['100'] from lxw_test;

mary    tom

3. struct类型访问: S.x

语法: S.x

操作类型: S为struct类型

说明:返回结构体S中的x字段。比如,对于结构体struct foobar {int foo, int bar},foobar.foo返回结构体中的foo字段

举例:

hive> create table lxw_test as select struct('tom','mary','tim') as t from lxw_dual;

hive> describe lxw_test;

t       struct<col1:string,col2:string,col3:string>

hive> select t.col1,t.col3 from lxw_test;

tom     tim

十一、复杂类型长度统计函数

1.    Map类型长度函数: size(Map<K.V>)

语法: size(Map<K.V>)

返回值: int

说明: 返回map类型的长度

举例:

hive> select size(map('100','tom','101','mary')) from lxw_dual;

2

2.    array类型长度函数: size(Array<T>)

语法: size(Array<T>)

返回值: int

说明: 返回array类型的长度

举例:

hive> select size(array('100','101','102','103')) from lxw_dual;

4

3.    类型转换函数

类型转换函数: cast

语法: cast(expr as <type>)

返回值: Expected "=" to follow "type"

说明: 返回array类型的长度

举例:

hive> select cast(1 as bigint) from lxw_dual;

1

4. 其他

cast 函数:
类型转换函数,cast(kbcount as int);

case when:
条件判断,case when kbcount is not null and cast(kbcount as int) >= cast(patch_count as int) then '1' else '0' end as isinstalled ;
语法:方法1
(
case sex
when '1' then '男'
when '2' then '女'
else '未知'
end
) as 性别

方法2
case
when sex='1' then '男'
when sex='2' then '女'
else '未知'
end as 性别

from_unixtime:将unix时间戳转化为制定格式的时间
from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss') as xdsp_last_update_time

lcase() :将字段的值转换为小写
lcase(t.info_iot_name)

hive collect_set: 可以得到分组后,其他合并元素的制定位置的值作为去重后的值。

表明:user
id , name, url
1 shao www
1 shao1 www1
2 zhi www
2 zhi1 www.ee
2 zhi2 www.2323
3 qi www.eere
3 qi2 www.urr

想要得到:
id , name, url
1 shao www
2 zhi www
3 qi www.eere

sql实现:方法1
select id ,collect_set(name)[0],collect_set(url)[0]
from user
group by id;

方法2:
select id ,max(name),max(url)
from user
group by id;

字符串max:字符串按照字母A-Z,越往后值越大
汉字按照全拼字母排,第一个字母相同则看第二个
concat() : 将两个或者多个字符串连接起来,如果有任何一个参数为null,则返回值为null
a.os_version like concat('%','2012r2','%')
concat_ws(): 以第一个参数为分隔符,将其他参数连起来
concat_ws('.',os_version_main,os_version_sp,os_version_bit,os_version_sub)

hive常用函数五的更多相关文章

  1. Hive常用函数的使用

    Hive常用函数的使用 文章作者:foochane  原文链接:https://foochane.cn/article/2019062501.html 1 基本介绍 1.1 HIVE简单介绍 Hive ...

  2. hive常用函数 wordCount--Hive窗口函数1.1.1 聚合开窗函数聚合开窗函数实战

    第三天笔记 第三天笔记 SQL练习Hive 常用函数关系运算数值计算条件函数日期函数重点!!!字符串函数Hive 中的wordCount1.1 Hive窗口函数1.1.1 聚合开窗函数聚合开窗函数实战 ...

  3. Hive常用函数

    字符串函数 字符串长度函数:length 语法: length(string A) 返回值: int 说明:返回字符串A的长度 举例: hive> select length(‘abcedfg’ ...

  4. Hive 常用函数

    参考地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 1. parse_url(url, partToExt ...

  5. orcale和hive常用函数对照表(?代表未证实)

    函数分类 oracle hive 说明 字符函数 upper('coolszy') upper(string A) ucase(string A) 将文本字符串转换成字母全部大写形式 lower('K ...

  6. Hive 常用函数汇总

    Hive内部提供了很多函数给开发者使用,包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等,这些函数都统称为内置函数. 目录 数学函数 集合函数 类型转换函数 日期函数 条件函数 ...

  7. hive常用函数六

    cast 函数: 类型转换函数,cast(kbcount as int); case when: 条件判断,case when kbcount is not null and cast(kbcount ...

  8. hive常用函数四

    字符串函数 1. 字符串长度函数:length 语法: length(string A) 返回值: int 说明:返回字符串A的长度 举例: hive> select length('abced ...

  9. hive常用函数三

    日期函数 1. UNIX时间戳转日期函数: from_unixtime 语法: from_unixtime(bigint unixtime[, string format]) 返回值: string ...

随机推荐

  1. MySQL设置外键报错 #1452 - Cannot add or update a child row: a foreign key constraint fails 解决方法

    MySQL数据库,当我尝试在A表中设置B表的主键为外键时,报出错误:#1452 - Cannot add or update a child row: a foreign key constraint ...

  2. CentOs安装配置Jenkins(一)

    安装 RPM方式安装 #如果下列版本不是您需要的版本,可以到清华镜像站点查找自己需要的jenkins版本rpm地址 #清华镜像网址:https://mirrors.tuna.tsinghua.edu. ...

  3. Ubuntu和Windows双系统修复

    一. 感受 新买了电脑从头安装win10和ubuntu双系统,踩了各种坑,终于是成功了. 大致流程是用老毛桃安装了window10系统,装在了固态硬盘上.随后用软碟通将Ubuntu系统写入U盘(先用老 ...

  4. POJ1780 欧拉路+手写栈解决爆战问题

    题目链接:http://poj.org/problem?id=1780 本题中给出一个位数n,要求给出一个10^n+n-1位数的数,要求每个n位的数都要在里面出现,一个n位的数一共有10^n种,我们容 ...

  5. C#获取设备话筒主峰值(实时音频输出分贝量)

    1.引用类库NAudio,Git地址 https://github.com/naudio/NAudio 2.添加如下代码和引用: public float GetVoicePeakValue() { ...

  6. 学界!关于GAN的灵魂七问

    根据一些指标显示,关于生成对抗网络(GAN)的研究在过去两年间取得了本质的进步.在图像合成模型实践中的进步快到几乎无法跟上. 但是,根据其他指标来看,实质性的改进还是较少.例如,在应如何评价生成对抗网 ...

  7. Jenkins打造多分支流水线指南

    overview: 多分支工作流程带来了以下几个关键能力: 在代码仓库中,每个新分支都有自己单独的工作流水线(job). 每个工作流水线都记录了对应分支的构建和变更历史. 可以自定义设置流水线随着分支 ...

  8. 12c OCR corrupted results in CRS stack down.

    12c OCR corrupted results in CRS stack down. 1. check crsd.trc2017-03-21 16:14:44.667838 :  CRSOCR:2 ...

  9. [noip2016]愤怒的小鸟<状压dp+暴搜>

    题目链接:https://vijos.org/p/2008 现在回过头去看去年的考试题,发现都不是太难,至少每道题都有头绪了... 这道题的数据范围是18,这么小,直接暴力呗,跑个暴搜就完了,时间也就 ...

  10. Java系列之内部类

    今天温习一下 Java 中的内部类,内部类一般有如下几种:静态内部类.成员内部类.匿名内部类和方法内部类,下文中将主要介绍静态内部类和成员内部类,主要内容如下: 概述 静态内部类 成员内部类 匿名内部 ...