🍳
Between code and words
  • About
    • About Me
    • About Book
  • 技术专辑
    • 大数据BigData
      • Ambari
        • 搭建虚拟机集群以及安装Ambari
          • self
            • 构建b
            • 构建m
            • 构建s
            • 构建集群
          • Windows
            • +VMware从头完全部署
            • +Docker从已有镜像简易部署
          • Linux
            • +Docker从头完全部署
            • +Docker从已有镜像简易部署
      • CDH
      • Maven
        • 一个简单的项目
        • GitHub远程maven私人仓库
      • Hadoop
        • HDFS介绍
        • MapReduce介绍
        • YARN介绍
        • HDFS常用命令
      • Hive
        • Hive简介及核心概念
        • Hive CLI和Beeline命令行的基本使用
        • ambari安装Hive
        • Hive常用DDL操作
        • Hive常用DML操作
        • Hive常用DCL操作
        • Hive分区表和分桶表
        • Hive 视图和索引
        • Hive数据查询详解
        • 进阶-优化
        • 进阶-函数
        • 进阶-Brickhouse UDF
        • 进阶-接入Python
      • 帮助
        • 常用端口
        • 常用命令
        • QA
    • 项目Program
      • 大数据项目实践
        • 1 亿条淘宝用户行为数据分析
          • 1. 部署环境
          • 2. 数据集下载
          • 3. 数据处理和表优化
          • 4.数据分析
          • 5.可视化
      • Web实践-Qhubl
        • 第一章-概
        • 第二章-面向公众的前后端
        • 部署指导
      • GNN
        • 1. 环境配置
        • 2. 节点分类
          • 数据集
            • Cora.py
          • 模型
            • GCN.py
            • GAT.py
          • Utils
            • draw.py
            • TTV.py
      • 美亚柏科
    • Linux
      • Linux
        • 常见
        • 代理
        • 科学计算
          • MPAS7
        • WSL
          • WSL数据迁移
          • 安装Docker Engine
        • 脚本
        • QA
      • Git
        • QA
      • VMware
        • 虚拟机代理
        • 双向复制粘贴
        • 磁盘扩容
        • QA
      • Docker
        • WSL安装Docker Engine
        • 优雅的上代理
        • 优雅地给容器新添端口
        • QA
      • MySQL
        • 重置初始密码
        • 免输密码登录
        • 低密码策略脚本
        • DeBug
    • Java
      • 语言特性
        • 多线程
        • AQS
        • JVMG1
      • 框架
        • SpringBoot
          • 注解
          • 配置
          • YAML
  • Self
    • 电脑应用
    • 奖项存档
    • 日语笔记
      • 入门五十音
      • 入门音调声调
    • 读书笔记
      • 《贫穷的本质》
        • 前言
        • 第一章 再好好想想
        • 第二章 饥饿人口已达到10亿?
Powered by GitBook
On this page
  1. 技术专辑
  2. 大数据BigData
  3. Hive

进阶-函数

时间函数

from_unixtime

把Unix时间戳(以秒为单位)转换成日期和时间的字符串。有两个参数,第一个参数是Unix时间戳,第二个参数是日期和时间的格式,如果省略第二个参数,那么默认的格式是yyyy-MM-dd HH:mm:ss

SELECT from_unixtime(1640995199); -- 返回'2021-12-31 23:59:59'
SELECT from_unixtime(1640995199, 'yyyy-MM-dd'); -- 返回'2021-12-31'
unix_timestamp

把日期和时间的字符串转换成Unix时间戳(以秒为单位)。它有两个参数,第一个参数是日期和时间的字符串,第二个参数是日期和时间的格式,如果省略第二个参数,那么默认的格式是yyyy-MM-dd HH:mm:ss。

SELECT unix_timestamp('2021-12-31 23:59:59'); -- 返回1640995199
SELECT unix_timestamp('2021-12-31', 'yyyy-MM-dd'); -- 返回1640956800
collect_list

好的,我可以举一个具体的例子来描述map和collect函数。假设我们有一个表叫student,它有三列:id, name, score,如下所示:

id	name	score
1	Tom	80
2	Lily	90
3	Jack	85
1	Tom	75
2	Lily	95
3	Jack	80

如果我们想要把每个学生的所有成绩收集到一个数组中,我们可以用collect函数,像这样:

select id, name, collect_list(score) as scores from student group by id, name;

这样就会得到下面的结果:

id	name	scores
1	Tom	[80, 75]
2	Lily	[90, 95]
3	Jack	[85, 80]
map

好的,我可以举一个具体的例子来描述map和collect函数。假设我们有一个表叫student,它有三列:id, name, score,如下所示:

id	name	score
1	Tom	80
2	Lily	90
3	Jack	85
1	Tom	75
2	Lily	95
3	Jack	80

select id, map(name, score_array) as name_score_map from ( select id, name, array(score) as score_array from student ) t;

这样就会得到下面的结果:

id	name_score_map
1	{‘Tom’: [80]}
1	{‘Tom’: [75]}
2	{‘Lily’: [90]}
2	{‘Lily’: [95]}
3	{‘Jack’: [85]}
3	{‘Jack’: [80]}
datediff

计算date类型变量之差

datediff('1920-01-01', date) 函数用于计算date日期和'1920-01-01'日期之间相差的天数。这个函数返回一个整数值。

pmod

取余计算

pmod(45,7)计算45对7取余,返回3

Previous进阶-优化Next进阶-Brickhouse UDF

Last updated 1 year ago