随笔分类 - Hive
Hive SQL 数据库
摘要:nvl 函数和 coalesce 函数都是用来处理空值的函数,但略有不同。 注意:非 NULL 值为 NULL, 如果是'',' ', 'null', 'NULL'等视为字符串,返回参数本身。 一、nvl函数 nvl 只能处理2个参数,如果第1个不是 null, 则返回第1个参数,否则返回第2个参数
阅读全文
摘要:一、最大值 当在 Hive 中需要对多列数据求最大值时,可以使用函数 greatest(a, b, c, d) 实现。 select greatest(a, b, c) from ( select 10 as a, 20 as b, 30 as c ) dd; -- 结果:30 举个具体栗子:计算用
阅读全文
摘要:日常从临时表复制数据到正式表可通过: create table table_name_new as select * from table_name; 但这样子原表的信息,分区等无法直接复制,需要通过额外的方式进行构建表、插入数据。 具体参考如下。 一、全量复制 drop table table_n
阅读全文
摘要:一、查看分区 查看分区 show partitions table_name; /* update_date=20230305 update_date=20230312 update_date=20230319 */ 查看分区表描述 desc table_name partition(update_
阅读全文
摘要:MySQL 中有 group_concat 进行分组拼接字符串的功能,但 hive 中没有这个函数,需要进行折中处理。 具体可参考以前文章:Hive学习笔记:列转行之collect_list/collect_set/concat_ws 功能更新 对于拼接的字段进行排序,例如: 有多个渠道来源的情况下
阅读全文
摘要:在 Python 中,利用 Pandas.describe() 可以很方便的观测某一列的数量、最小值、均值、最大值、分位数等。 pd.series.describe(percentiles=[0.05,0.25,0.3,0.7,0.8]) 具体可参考文章:Python学习笔记:描述性统计descri
阅读全文
摘要:一、说明 与其他 SQL 语法类似,Hive 中也支持 with as 将一大段 SQL 语句封装为子查询,方便后续多次调用。 MySQL旧版本不支持with as语法,8.0才支持。 with tt as ( select *, row_number() over(partition by id
阅读全文
摘要:工作中需要合并区号与号码,因两个字段均为数值,无法直接使用 “+” 进行拼接,需要通过其他方法。 一、concat拼接 concat 将多个字段(字段类型可不相同)拼接起来。 使用语法为: -- 语法 concat(string a, int b, float c) -- 拼接多个字段 select
阅读全文
摘要:方法一:as select 直接复制表数据、表字段,但表属性已改变,分区不存在。 **缺点:**分区字段会变成普通列,且无法复制字段的 comment 备注信息。 -- 直接备份 create table if not exists aaa as select * from bbb 方法二:like
阅读全文
摘要:一、介绍 在 Hive 中想实现按某字段分组,对另外字段进行合并,可通过 collect_list 或者 collect_set 实现。 它们都是将分组中的某列转为一个数组返回,其中区别在于: collect_list -- 不去重 collect_set -- 去重 有点类似于 Python 中的
阅读全文
摘要:一、普通建表添加注释 在Hive中创建表可使用以下语句,添加中文注释方便识别。 语法: -- 创建临时表 create table tb_test ( id varchar(100), -- 用户id age varchar(100) -- 年龄 ) ROW FORMAT DELIMITED FIE
阅读全文
摘要:日常使用 较多,使用 即可获取当前时间,其他数据库使用 也可以获取。 impala 介绍 impala 是用于处理存储在 Hadoop 集群中的大量数据的 MPP(大规模并行处理)SQL查询引擎。 它是一个用 C++ 和 Java 编写的开源软件。 与其他 Hadoop 的 SQL 引擎相比,它提供
阅读全文
摘要:语法 返回值为一个数组。 基本用法 截取字符串中某个值 可以指定提取结果数组中的某个值。 特殊字符的处理 针对特殊分割符号,需要特殊处理。 正确语法为: 当 包含在双引号 之中时,需要添加4个反斜杠。例如: 否则得到的值为空值 NULL。 同样的 | 等特殊符号需做类似处理。 有些特殊字符转义只需要
阅读全文