select a.date
,b.label
,b.value
from (select *
from daily_report
LATERAL VIEW explode (map(
'UV', uv
,'新增UV', newuv
,'视频存量', video
,'新增视频', newvideo
,'播放量', vv
,'会员数', vip_num
,'新增会员数', new_vip_num
)) b as label, value
字符串转为map
str_to_map(text[, delimiter1, delimiter2])
使用两个分隔符将文本拆分为键值对。 Delimiter1将文本分成K-V对,Delimiter2分割每个K-V对。对于delimiter1默认分隔符是',',对于delimiter2默认分隔符是'='。
select str_to_map('aaa:11&bbb:22', '&...
将字符类型数据,转化成map格式的数据
1.1:语法描述
STR_TO_MAP(VARCHAR text, VARCHAR listDelimiter, VARCHAR keyValueDelimiter)
1.2:功能描述
使用listDelimiter将text分隔成K-V对,然后使用keyValueDelimiter分隔每个K-V对,组装成MAP返回。默认listDelimiter为
Hive中的两种行列转换1.将列上的多个值打成一行(多列)的行列转换案例一场景一(列转行)场景二(行转列)2.字符串合并与拆分形式的行列转换案例二场景一(列转行)场景二(行转列)总结
1.将列上的多个值打成一行(多列)的行列转换
场景一(列转行)
数据如下:
name item score
张三 数学 58
张三 英语 83
张三 语文 89
李四 数学 67
李四 英语 35
李四 语文 92
王五 数..
1.concat函数
CONCAT()函数用于将多个字符串连接成一个字符串。
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。可以有一个或多个参数。
hive> select concat('a','b');
hive> select concat('a','b',null);
2.concat_ws函数
是CONCAT()的特殊形式。第一个参数是其它参...
1、HIVE多行转多列
源数据样式
把CAMERA_NO,RESULT_DATA两列转换为CAMERA_NO字段的数据为列名,RESULT_DATA字段对应CAMERA_NO的数据为值
方法一:利用str_to_map函数
alter table ods.iot.iot_5060_iotdaq.5060_aac_mtf_meas_results_new add if not exists partition(date='{DATE}' ,hour='{HOUR}',minutes='{MINUTES}');
insert overwrite table ods.iot.iot_5060_io
str_to_
map(字符串参数, 分隔符1, 分隔符2)
使用两个分隔符将文本拆分为键
值对。
分隔符1将文本分成K-V对,分隔符2分割每个K-V对。对于分隔符1默认分隔符是',',对于分隔符2默认分隔符是'='
我们先介绍一下这个
函数的
应用场景。
Z表又被称之为拉链表。在同一个分区中主键是stat_date+uid被储存的
值是客户的状态。
我们需要对客户状态进行统计。
表字段中jsonStr是一个json格式的字符串,类似于map结构。{"name”:"king", "age":18, "score":99}
使用str_to_map可以转化为map结构。
str_to_map(regexp_replace(regexp_replace(regexp_replace(jsonStr,'\"',''),'\\{',''),'\\}',''), ',', ':'...