内容简介

  • 一、Hive内置函数介绍
  • 二、Hive常用内置函数介绍
    • 1.数值计算函数
    • 2.字符串操作函数
    • 3.日期函数
    • 4.聚合函数
    • 5.表生成函数
  • 三、使用Hive函数完成WordCount
    • 1.创建表并将数据导入
    • 2.编写SQL句并执行
  • 四、总结

一、Hive内置函数介绍

Hive为编程人员提供了大量的内置函数,为编程提供了极大的便利,进入hive shell下输入命令:show functions可查看所有Hive所有的内置函数:

以上函数大致可以分为:数值计算函数、字符串操作函数、聚合函数等等,下面对常用的Hive内置函数做一下介绍。

二、Hive常用内置函数介绍

1.数值计算函数

函数表达式 函数功能 返回值类型
round(Double a) 返回对a四舍五入的Double值 Double
round(Double a, Int d) 返回对a四舍五入的Double值 ,保留d位小数 Double
floor(Double a) 对a向下取整 Double
ceil(Double a) 对a向上取整 Double
rand(Int seed) 返回一个0到1范围内的随机数,seed是随机因子,可以不填 Double
pow(Double a, Double p) 返回a的p次幂 Double
sqrt(Double a) 返回a的平方根 Double
abs(Double a) 返回a的绝对值 Double
pmod(Double a, Double b) 返回a对b取模 Double

2.字符串操作函数

函数表达式 函数功能 返回值类型
length(string A) 返回字符串A的长度 Int
substr(string A,Int start,Int len) 返回字符串A从start位置开始截取长度为len的字符串 string
split(string str, string pat) 返回按照正则表达式pat来分割字符串str的数组 array
reverse(string A) 返回字符串A的反转串 string
concat(string A, string B,…) 返回字符串按次序进行拼接的串 string
lower(string A) 返回字符串A的所有字母转换成小写字母的串 string
upper(string A) 返回字符串A的所有字母转换成大写字母的串 string
rtrim(string A) 返回去掉字符串A后面出现的空格的串 string

3.日期函数

函数表达式 函数功能 返回值类型
current_date 返回当前时间日期 string
year(string date) 返回日期的年部分 string
month(string date) 返回日期的月部分 string
day(string date) 返回日期的日部分 string
weekofyear(string date) 返回日期位于该年的第几个星期 Int
datediff(string enddate, string startdate) 返回始时间startdate到结束时间enddate相差的天数 Int
date_add(string startdate, int days) 返回开始时间startdate加上days的时间 string
date_sub(string startdate, int days) 返回开始时间startdate减去days的时间 string
from_unixtime(BigInt second,string format) 返回时间的秒值转换成format格式 string

4.聚合函数

函数表达式 函数功能 返回值类型
count(*) 返回表的总行数 BigInt
sum(col) 返回表指定列的和 Double
sum(DISTINCT col) 返回表的去重后的列的和 Double
avg(col) 返回表的指定列的平均值 Double
avg(DISTINCT col) 返回表的指定列去重后的平均值 Double
min(col) 返回表指定列的最小值 Double
max(col) 返回表指定列的最大值 Double

5.表生成函数

函数表达式 函数功能 返回值类型
explode(array) 返回每行对应数组中的一个元素 N rows
explode(map) 返回每行对应每个map键-值,其中一个字段是map的键,另一个字段是map的值 N rows

三、使用Hive函数完成WordCount

1.创建表并将数据导入

在hive shell在输入命令:create table wordcount(line string),表的字段只有一个,就是每行未分割的单词,创建完成后,执行命令:load data local inpath' /home/hadoop/data/testdata' into table wordcount将下面的数据testdata导入:

hello world hello hadoop
hello spark hello hbase
hello hive hello hadoop
hello kafka hello flume
hello flink hello sqoop
hello spark hello hbase
hello kafka hello flume
hello spark hello hbase

执行命令:select * from wordcount查看数据:

至此,数据准备完成。

2.编写SQL句并执行

wordcount表中,每一行就是一个string,所以我们首先需要使用函数split对每行以空格切割,得到一个字符串数组,然后使用函数explode将数组拆开,返回每行一个字符将其命别名为word,对上述结果建立临时表w,最后对表w分组聚合,便完成了WordCount操作,完整SQL语句如下:
select word ,count(1) from (select explode(split(line," ")) as word from wordcount) w group by word,执行结果如下:

四、总结

本篇首先介绍了Hive的内置函数,并对于常用的内置函数分类做了较为详细的介绍,最后动手使用Hive的内置函数完成了WordCount,可以发现,使用Hive完成WordCount远比手写MapReduce代码要简洁得多,这也是Hive优势之所在。感谢您的阅读~如有错误请不吝赐教!

Hive学习之路(四):Hive内置函数介绍与实现WordCount相关推荐

  1. Hive学习之路(二):Hive表操作详讲

    操作内容简介 一.操作前的准备 二.Hive表操作详讲 1. 创建数据库 2. 查看所有数据库/表 3. 在Hive上直接操作HDFS 4. 在Hive上直接执行终端命令 5. 创建数据表/查看表的信 ...

  2. python学习之最常用的内置函数

    python学习之最常用的内置函数 Python 内置函数总共有70余个(通常把内置类也统称为内置函数),覆盖面广,功能强大.不过,对于初学者在初级阶段,掌握下面几个函数是当务之急. (1) 控制台输 ...

  3. Python自学之路——Python基础(四)内置函数

    对上表一些比较重要常用的内置函数做一个整理 chr()与ord()     chr()是将ASCII中十进制编号转换成相应的字符,而ord()刚好相反 c = chr(49) o = ord('1') ...

  4. python常用内置函数总结-Python学习教程之常用的内置函数大全

    前言 内置函数,一般都是因为使用比较频繁或是元操作,所以通过内置函数的形式提供出来.在Python中,python给我们提供了很多已经定义好的函数,这里列出常用的内置函数,分享出来供大家参考学习,下面 ...

  5. Python全栈之路系列----之-----内置函数和匿名函数lamdba

    引子 什么是内置函数? 内置函数就是python 提供给我们直接拿来就可以用的函数   内置函数--内置命名空间   只管调用 不管实现 总共68个 def func(): == #这是自己定义的函数 ...

  6. 逆袭之路——python常见内置函数、表达式【day15】

    今日内容概要 三元表达式(简化代码) 各种生成式(简化代码) 匿名函数(简化代码) 常见重要内置函数 常见内置函数补充 今日内容详细 一.三元表达式 三元表达式:         值1 if 条件 e ...

  7. JavaScript学习笔记(九)--内置函数

    javascript内置函数一共可分为五类:常规函数.数组函数.字符串函数.日期函数.数学函数. 常规函数 方法 描述 alert() 显示一个警告对话框,包括一个OK按钮. confirm() 显示 ...

  8. python 内置函数 builtins_python学习笔记(七)——内置函数

    builtins.py模块,是python的内建模块,在运行时会自动导入该模块.在该模块中定义了很多我们常用的内置函数,比如print,input 等. 在 builtins.py 模块中给出如下注释 ...

  9. 学习Python的利器:内置函数dir()和help()

    (1)内置函数dir()用来查看对象的成员.在Python中所有的一切都是对象,除了整数.实数.复数.字符串.列表.元组.字典.集合等等,还有range对象.enumerate对象.zip对象.fil ...

最新文章

  1. SQL获取当月天数的几种方法
  2. 【转】Android 带checkbox的listView 实现多选,全选,反选 -- 不错
  3. 华为智能计算发布FusionServer Pro智能服务器
  4. HTTP Response Splitting攻击探究 转
  5. M1支持Windows arm_新款Macbook air,史上最强M1芯片,能买吗?有哪些注意的
  6. 【Windows版】CMake安装教程
  7. 【Unity Native Plugins】1.调用动态库so-android篇 附录完整工程
  8. 光谱共焦位移传感器原理和特性
  9. npm 安装ionic
  10. 男cd是啥意思_CD伪娘是什么意思?
  11. 【高仿微信系列】微信录制小视频
  12. ANSYS ICEM CFD三维非结构网络生成实例——教室全新风送风与排风
  13. MP-SPDZ开源库——将结果输出到文件
  14. H3CNE考试模拟试题
  15. 【​观察】 娃娃也能编程?微软“编程一小时”让你家娃也能变身编程达人
  16. handler机制,成功跳槽百度工资从15K涨到28K,挥泪整理面经
  17. 好用的工作邮箱有哪些?工作邮箱如何登录
  18. python三维建模需要用到哪些知识_参加数学建模需要学习哪些方面的知识?
  19. [开题报告+任务书+论文+PPT+源码]基于安卓的个人图书馆设计[包运行成功]
  20. JD商城经典爬楼梯布局,看到就是赚到

热门文章

  1. 三天超两亿人玩?制作一款《人生重开模拟器》有多难?
  2. 华为无线路由器中继模式设置
  3. es6新特性总结及使用说明
  4. HDU 5925 Coconuts
  5. JS中的innerHTML和innerText
  6. 黄章和魅族“三剑客”不得不说的故事
  7. 什么是面向对象编程和面向过程编程
  8. Linux下如何彻底删除(卸载)MySQL?
  9. CSS 中文字体的一些英文名称
  10. @Configuration注解