Hive的时间操作函数

from_unixtime

功能: UNIX时间戳转日期函数: 

语法:   from_unixtime(bigint unixtime[, string format])

返回值: string

说明: 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式

举例

select from_unixtime(1323308943,'yyyyMMdd'); #结果 20111208

unix_timestamp

功能:获取当前UNIX时间戳函数:

语法1:   unix_timestamp()

返回值:   bigint

说明: 获得当前时区的UNIX时间戳

举例:

select unix_timestamp();  #结果样例 1608016076

语法2:   unix_timestamp(string date)

返回值:   bigint

说明: 转换格式为“yyyy-MM-dd HH:mm:ss“的日期到UNIX时间戳。如果转化失败,则返回0。

举例:

 select unix_timestamp('2011-12-07 13:01:03'); #结果 1323234063

语法3:   unix_timestamp(string date, string pattern)

作用:指定pattern格式日期转UNIX时间戳函数:

返回值:   bigint

说明: 转换pattern格式的日期到UNIX时间戳。如果转化失败,则返回0。

举例:

select unix_timestamp('20111207 13:01:03','yyyyMMdd HH:mm:ss'); # 1323234063

to_date

作用:日期时间转日期函数

语法:   to_date(string timestamp)

返回值:   string

说明: 返回日期时间字段中的日期部分。

举例

select to_date('2011-12-08 10:03:01'); # 2011-12-08

current_date

作用:获取当前日期

语法:   current_date()

返回值:   string

说明: 获取当前日期。

举例

select current_date(); # 2020-12-08

current_timestamp

作用:获取当前时间

语法:   current_timestamp()

返回值:   string

说明: 获取当前日期。

举例

select current_timestamp(); # 2020-12-08 11:47:53.735

date_format

作用:格式化时间

语法:   date_format(date_time, format)

返回值:   string

说明: 返回格式化后的时间。

select date_format('2015-04-08', 'y');
2015
select date_format('2015-04-08', 'yyyy');
2015
select date_format('2015-04-08', 'yyyy-MM');
2015-04
select date_format('2015-04-08 10:10:01', 'yyyy-MM');
2015-04
select date_format('2015-04-08', 'yyyy-MM-dd');
2015-04-08

注意:  date_format函数如果第一个参数是字符串,连接符只能是-,别的识别不了

select date_format('2015/04/08', 'y');
--null,识别不了/ 这种分隔符
select date_format(regexp_replace('2015/04/08', '/', '-'), 'y');
--2015
select date_format(regexp_replace('2015/04/08', '/', '-'), 'y-MM');
--2015-04 如果有些时候需要按月聚合就需要这么搞
select month('2015/04/08');
--null 无法识别
select month(regexp_replace('2015/04/08', '/', '-'));
-- 4 可以

year

作用:日期转年函数: 

语法:   year(string date)

返回值: int

说明: 返回日期中的年。

举例

select year('2011-12-08 10:03:01'); # 2011


select year('2012-12-08'); # 2012

month

作用:日期转月函数

语法: month(string date)

返回值: int

说明: 返回日期中的月份。

举例

select month('2011-12-08 10:03:01');

12

select month('2011-08-08');

8

 day

作用:日期转天函数: 

语法:  day(string date)

返回值: int

说明: 返回日期中的天。

举例

select day('2011-12-08 10:03:01');

8

select day('2011-12-24');

24

hour

作用:日期转小时函数

语法: hour(string date)

返回值: int

说明: 返回日期中的小时。

举例

select hour('2011-12-08 10:03:01');

10

minute

作用:日期转分钟函数

语法: minute(string date)

返回值: int

说明: 返回日期中的分钟。

举例

select minute('2011-12-08 10:03:01');

3

second

作用:日期转秒函数:

语法: second(string date)

返回值: int

说明: 返回日期中的秒。

举例

select second('2011-12-08 10:03:01');

1

weekofyear

作用:日期转周函数

语法:   weekofyear(string date)

返回值: int

说明: 返回日期在当前的周数。

举例

select weekofyear('2011-12-08 10:03:01');

49

dayofyear

作用:日期转天函数

语法:   dayofyear(string date)

返回值: int

说明: 返回日期在所在年的第几天。

举例

# 貌似hive中不存在该函数
SELECT dayofyear('2016-04-09');

100

dayofmonth

作用:日期转天函数

语法:   dayofmonth(string date)

返回值: int

说明: 返回日期在所在月的第几天。

举例

SELECT dayofmonth('2009-07-30');

30

datediff

作用:日期比较函数:

语法:   datediff(string enddate, string startdate)

返回值: int

说明: 返回结束日期减去开始日期的天数。

举例

SELECT datediff('2020-11-30', '2020-07-31');

122

date_add

作用:日期增加函数

语法:   date_add(string startdate, int days)

返回值: string

说明: 返回开始日期startdate增加days天后的日期。

举例

SELECT date_add('2009-07-30', 10);

2009-08-09

date_sub 

作用:日期减少函数

语法:   date_sub(string startdate, int days)

返回值: string

说明: 返回开始日期startdate减少days天后的日期。

举例

SELECT date_sub('2009-07-30', 48);

2009-06-12

还有两个常用的时间函数,有时间再整理

next_day
last_day

附录

hive的时间格式表(用的是java的SimDateFormat格式)

LetterDate or Time ComponentPresentationExamples
GEra designatorTextAD
yYearYear199696
YWeek yearYear200909
MMonth in yearMonthJulyJul07
wWeek in yearNumber27
WWeek in monthNumber2
DDay in yearNumber189
dDay in monthNumber10
FDay of week in monthNumber2
EDay name in weekTextTuesdayTue
uDay number of week (1 = Monday, ..., 7 = Sunday)Number1
aAm/pm markerTextPM
HHour in day (0-23)Number0
kHour in day (1-24)Number24
KHour in am/pm (0-11)Number0
hHour in am/pm (1-12)Number12
mMinute in hourNumber30
sSecond in minuteNumber55
SMillisecondNumber978
zTime zoneGeneral time zonePacific Standard TimePSTGMT-08:00
ZTime zoneRFC 822 time zone-0800
XTime zoneISO 8601 time zone-08-0800-08:00

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
⼤数据场景化解决⽅案 ⼤数据场景化解决⽅案 1.⼤数据的概念 维基百科的定义: ⼤数据是指利⽤常⽤软件⼯具捕获、管理和处理数据所耗时间超过可容忍时间的数据集。 2.⼤数据主流技术 数据采集: 使⽤Flume,可进⾏流式⽇志数据的收集。 使⽤Sqoop可以交互关系型数据库,进⾏导⼊导出数据。 使⽤爬⾍技术,可在⽹上爬取海量⽹页数据。 数据存储与管理: ⼤数据利⽤分布式⽂件系统HDFS、HBase、Hive,实现对结构化、半结构化和⾮结构化数据的存储和管理。 数据处理与分析: 利⽤分布式并⾏编程模型和计算框架,结合机器学习和数据挖掘算法,实现对海量数据的处理和分析。 3.场景化解决⽅案 在⾯对不同的场景时,会使⽤不同的⼤数据组件去解决处理,主要有如下⼤数据场景化解决⽅案。 离线批处理 实时检索 实时流处理 融合数仓 3.1 离线批处理 离线批处理,是指对海量历史数据进处理和分析,⽣成结果数据,供下⼀步数据应⽤使⽤的过程。离线批处理对数据处理的时延要求不 ⾼,但是处理的数据量较⼤,占⽤的计算存储资源较多,通常通过MR作业、Spark作业或者HQL作业实现。 离线批处理的特点: 处理时间要求不⾼ 处理数据量巨⼤ 处理数据格式多样 占⽤计算存储资源多 离线处理常⽤的组件: HDFS:分布式⽂件系统,为各种批处理引擎提供数据存储,可以存储各种⽂件格式数据。 YARN:资源调度引擎,为各种批处理引擎提供资源调度能⼒。 MapReduce:⼤数据批处理引擎,⽤于处理海量数据,但是处理速度较慢。 Hive:⼤数据SQL批处理引擎,⽤于处理SQL类批处理作业,但是处理速度较慢。 Spark:基于内存的数据处理引擎,适合海量数据,处理速度⾼效。 Spark SQL:Spark处理结构化数据的⼀个模块。 HDFS介绍 HDFS(Hadoop Distributed File System)基于Google发布的GFS论⽂设计开发。 其除具备其它分布式⽂件系统相同特性外,HDFS还有⾃⼰ 特有的特性: ⾼容错性:认为硬件总是不可靠的。 ⾼吞吐量:为⼤量数据访问的应⽤提供⾼吞吐量⽀持。 ⼤⽂件存储:⽀持存储TB-PB级别的数据。 HDFS适合:⼤⽂件存储与访问 流式数据访问 HDFS不适合:⼤量⼩⽂件存储 随机写⼊ 低延迟读取 HDFS回收站机制: 在HDFS⾥,删除⽂件时,不会真正的删除,其实是放⼊回收站,回收站⾥的⽂件可以⽤来快速恢复误删⽂件。 可以设置⼀个时间阀值(单位:分钟),当回收站⾥⽂件的存放时间超过这个阀值或是回收站被清空时,⽂件才会被彻底删除,并且 释放占⽤的数据块。 Hadoop回收站trash,默认是关闭的,若开启需要修改配置⽂件core-site.xml。 Hive概述 Hive是基于Hadoop的数据仓库软件,可以查询和管理PB级别的分布式数据。 Hive特性: 灵活⽅便的ETL (Extract/Transform/Load)。 ⽀持MapReduce、Tez、Spark多种计算引擎。 可直接访问HDFS⽂件以及HBase。 易⽤易编程。 Hive函数: 查看系统函数的⽤法:show functions; 显⽰函数的⽤法:desc function upper; 详细显⽰函数的⽤法:desc function extended upper; 当Hive提供的内置函数⽆法满⾜业务处理需要时,此时就可以考虑使⽤⽤户⾃定义函数,编写处理代码并在查询中使⽤。 UDF(User-Defined-Function) ⽤于接收单个数据⾏,并产⽣⼀个数据⾏作为输出。 UDAF(User-Defined Aggregation Function) ⽤于接收多个数据⾏,并产⽣⼀个数据⾏作为输出。 UDTF(User-Defined Table-Generating Functions) ⽤于接收单个数据⾏,并产⽣多个数据⾏作为输出。 Hive调优 数据倾斜 数据倾斜指计算数据的时候,数据的分散度不够,导致⼤量的数据集中到了⼀台或者⼏台机器上计算,这些数据的计算速度远远低于平均 计算速度,导致整个计算过程过慢。 ⽇常使⽤过程中,容易造成数据倾斜的原因可以归纳为如下⼏点: group by distinct count(distinct xx) join 调优参数: 在map中会做部分聚集操作,效率更⾼但需要更多的内存。 set hive.map.aggr=true; 此时⽣成的查询计划会有两个MRJob,可实现数据倾斜时负载均衡。 set hive.groupby.skewindata=true; 当连接⼀个较⼩和较⼤表的时候,把较⼩的表直接放到内存中去,然后再对较⼤的表进⾏map操作。 set hive.auto.convert.join=true
大数据运维 郭现伟 大数据之运维全文共12页,当前为第1页。 大数据知识图谱 大数据之运维全文共12页,当前为第2页。 大数据运维知识图谱 大数据之运维全文共12页,当前为第3页。 Hadoop简介 Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点: 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。 低成本。 Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算 大数据之运维全文共12页,当前为第4页。 Map Reduce分布式计算框架 分布式计算框架将复杂的数据集分发给不同的节点去操作,每个节点会周期性的返回它所完成的工作和最新的状态 大数据之运维全文共12页,当前为第5页。 Hadoop分布式计算流程 大数据之运维全文共12页,当前为第6页。 Hive简介 Hive 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。 大数据之运维全文共12页,当前为第7页。 Hive使用场景 Hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive 在几百MB 的数据集上执行查询一般有分钟级的时间延迟。 Hive 并不适合那些需要低延迟的应用,例如,联机事务处理(OLTP)。Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为联机事务处理而设计,Hive 并不提供实时的查询和基于行级的数据更新操作Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。 大数据之运维全文共12页,当前为第8页。 Hive设计特征 Hive 是一种底层封装了Hadoop 的数据仓库处理工具,使用类SQL 的HiveQL 语言实现数据查询,所有Hive 的数据都存储在Hadoop 兼容的文件系统(例如,Amazon S3、HDFS)中。Hive 在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS 中Hive 设定的目录下,因此,Hive 不支持对数据的改写和添加,所有的数据都是在加载的时候确定的。Hive 的设计特点如下。 支持索引,加快数据查询。 不同的存储类型,例如,纯文本文件、HBase 中的文件。 将元数据保存在关系数据库中,大大减少了在查询过程中执行语义检查的时间。 可以直接使用存储在Hadoop 文件系统中的数据。 内置大量用户函数UDF 来操作时间、字符串和其他的数据挖掘工具,支持用户扩展UDF 函数来完成内置函数无法实现的操作。 类SQL 的查询方式,将SQL 查询转换为MapReduce 的job 在Hadoop集群上执行。 大数据之运维全文共12页,当前为第9页。 Hive 体系结构 用户接口 用户接口主要有三个:CLI,Client 和 WUI。 元数据存储 Hive 将元数据存储在数据库中,如 mysql、derby。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。 解释器、编译器、优化器、执行器 解释器、编译
一、关系运算: 4 1. 等值比较: = 4 2. 不等值比较: 4 3. 小于比较: < 4 4. 小于等于比较: 5 6. 大于等于比较: >= 5 7. 空值判断: IS NULL 5 8. 非空判断: IS NOT NULL 6 9. LIKE比较: LIKE 6 10. JAVA的LIKE操作: RLIKE 6 11. REGEXP操作: REGEXP 7 二、数学运算: 7 1. 加法操作: + 7 2. 减法操作: - 7 3. 乘法操作: * 8 4. 除法操作: / 8 5. 取余操作: % 8 6. 位与操作: & 9 7. 位或操作: | 9 8. 位异或操作: ^ 9 9.位取反操作: ~ 10 三、逻辑运算: 10 1. 逻辑与操作: AND 10 2. 逻辑或操作: OR 10 3. 逻辑非操作: NOT 10 四、数值计算 11 1. 取整函数: round 11 2. 指定精度取整函数: round 11 3. 向下取整函数: floor 11 4. 向上取整函数: ceil 12 5. 向上取整函数: ceiling 12 6. 取随机数函数: rand 12 7. 自然指数函数: exp 13 8. 以10为底对数函数: log10 13 9. 以2为底对数函数: log2 13 10. 对数函数: log 13 11. 幂运算函数: pow 14 12. 幂运算函数: power 14 13. 开平方函数: sqrt 14 14. 二进制函数: bin 14 15. 十六进制函数: hex 15 16. 反转十六进制函数: unhex 15 17. 进制转换函数: conv 15 18. 绝对值函数: abs 16 19. 正取余函数: pmod 16 20. 正弦函数: sin 16 21. 反正弦函数: asin 16 22. 余弦函数: cos 17 23. 反余弦函数: acos 17 24. positive函数: positive 17 25. negative函数: negative 17 五、日期函数 18 1. UNIX时间戳转日期函数: from_unixtime 18 2. 获取当前UNIX时间函数: unix_timestamp 18 3. 日期转UNIX时间函数: unix_timestamp 18 4. 指定格式日期转UNIX时间函数: unix_timestamp 18 5. 日期时间转日期函数: to_date 19 6. 日期转年函数: year 19 7. 日期转月函数: month 19 8. 日期转天函数: day 19 9. 日期转小时函数: hour 20 10. 日期转分钟函数: minute 20 11. 日期转秒函数: second 20 12. 日期转周函数: weekofyear 20 13. 日期比较函数: datediff 21 14. 日期增加函数: date_add 21 15. 日期减少函数: date_sub 21 六、条件函数 21 1. If函数: if 21 2. 非空查找函数: COALESCE 22 3. 条件判断函数:CASE 22 4. 条件判断函数:CASE 22 七、字符串函数 23 1. 字符串长度函数:length 23 2. 字符串反转函数:reverse 23 3. 字符串连接函数:concat 23 4. 带分隔符字符串连接函数:concat_ws 23 5. 字符串截取函数:substr,substring 24 6. 字符串截取函数:substr,substring 24 7. 字符串转大写函数:upper,ucase 24 8. 字符串转小写函数:lower,lcase 25 9. 去空格函数:trim 25 10. 左边去空格函数:ltrim 25 11. 右边去空格函数:rtrim 25 12. 正则表达式替换函数:regexp_replace 26 13. 正则表达式解析函数:regexp_extract 26 14. URL解析函数:parse_url 26 15. json解析函数:get_json_object 27 16. 空格字符串函数:space 27 17. 重复字符串函数:repeat 27 18. 首字符ascii函数:ascii 28 19. 左补足函数:lpad 28 20. 右补足函数:rpad 28 21. 分割字符串函数: split 28 22. 集合查找函数: find_in_set 29 八、集合统计函数 29 1. 个数统计函数: count 29 2. 总和统计函数: sum 29 3. 平均值统计函数: avg 30 4. 最小值统计函数: min 30 5. 最大值统计函数: max 30 6. 非空集合总体变量函数: var_pop 30 7. 非空集合样本变量函数: var_samp 31 8. 总体标准偏离函数: stddev_pop 31 9. 样本标准偏离函数: stddev_samp 31 10.中位数函数: percentile 31 11. 中位数函数: percentile 31 12. 近似中位数函数: percentile_approx 32 13. 近似中位数函数: percentile_approx 32 14. 直方图: histogram_numeric 32 九、复合类型构建操作 32 1. Map类型构建: map 32 2. Struct类型构建: struct 33 3. array类型构建: array 33 十、复杂类型访问操作 33 1. array类型访问: A[n] 33 2. map类型访问: M[key] 34 3. struct类型访问: S.x 34 十一、复杂类型长度统计函数 34 1. Map类型长度函数: size(Map) 34 2. array类型长度函数: size(Array) 34 3. 类型转换函数 35
本资源为网页,不是PDF Apache Spark 2.0.2 中文文档 Spark 概述 编程指南 快速入门 Spark 编程指南 概述 Spark 依赖 Spark 的初始化 Shell 的使用 弹性分布式数据集(RDDS) 并行集合 外部数据集 RDD 操作 RDD 持久化 共享变量 Broadcast Variables (广播变量) Accumulators (累加器) 部署应用到集群中 使用 Java / Scala 运行 spark Jobs 单元测试 Spark 1.0 版本前的应用程序迁移 下一步 Spark Streaming Spark Streaming 概述 一个简单的示例 基本概念 依赖 初始化 StreamingContext Discretized Streams(DStreams)(离散化流) Input DStreams 和 Receivers DStreams 上的 Transformations(转换) DStreams 上的输出操作 DataFrame 和 SQL 操作 MLlib 操作 缓存 / 持久化 CheckPointing 累加器和广播变量 应用程序部署 监控应用程序 性能 降低批处理的时间 设置合理的批处理间隔 内存 容错语义 迁移指南(从 0.9.1 或者更低版本至 1.x 版本) 快速跳转 Kafka 集成指南 DataFrames,Datasets 和 SQL Spark SQL 概述 SQL Datasets 和 DataFrames Spark SQL 入门指南 起始点 : SparkSession 创建 DataFrame 无类型 Dataset 操作(aka DataFrame 操作) 以编程的方式运行 SQL 查询 创建 Dataset RDD 的互操作性 数据源 通用的 Load/Save 函数 Parquet文件 JSON Datasets Hive 表 JDBC 连接其它数据库 故障排除 性能调优 缓存数据到内存 其它配置选项 分布式 SQL引擎 运行 Thrift JDBC/ODBC 运行 Spark SQL CLI 迁移指南 从 Spark SQL 1.6 升级到 2.0 从 Spark SQL 1.5 升级到 1.6 从 Spark SQL 1.4 升级到 1.5 从 Spark SQL 1.3 升级到 1.4 从 Spark SQL 1.0~1.2 升级到 1.3 兼容 Apache Hive 参考 数据类型 NaN 语义 Structured Streaming MLlib(机器学习) 机器学习库(MLlib)指南 ML Pipelines(ML管道) Extracting, transforming and selecting features(特征的提取,转换和选择) Classification and regression(分类和回归) Clustering(聚类) Collaborative Filtering(协同过滤) ML Tuning: model selection and hyperparameter tuning(ML调优:模型选择和超参数调整) Advanced topics(高级主题) MLlib:基于RDD的API Data Types - RDD-based API(数据类型) Basic Statistics - RDD-based API(基本统计) Classification and Regression - RDD-based API(分类和回归) Collaborative Filtering - RDD-based API(协同过滤) Clustering - RDD-based API(聚类 - 基于RDD的API) Dimensionality Reduction - RDD-based API(降维) Feature Extraction and Transformation - RDD-based API(特征的提取和转换) Frequent Pattern Mining - RDD-based API(频繁模式挖掘) Evaluation metrics - RDD-based API(评估指标) PMML model export - RDD-based API(PMML模型导出) Optimization - RDD-based API(最) GraphX(图形处理) Spark R 部署 集群模式概述 提交应用 Spark Standalone 模式 Spark on Mesos Spark on YARN Spark on YARN 上运行 准备 Spark on YARN 配置 调试应用 Spark 属性 重要提示 在一个安全的集群中运行 用 Apache Oozie 来运行应用程序 Kerberos 故障排查 Spark 配置 Spark 监控 指南 作业调度 Spark 安全 硬件配置 构建 Spark

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值