hive复合数据类型array
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive复合数据类型array相关的知识,希望对你有一定的参考价值。
参考技术A create table temp.array_test(name string,
active_date string,
active_num array<string>)
partitioned by (
dt string)
stored as orc;
create table temp.actvice_array_test(
name string,
active_date string,
active_num array<string>)
partitioned by (
dt string)
stored as orc;
insert overwrite table temp.array_test partition(dt)
select 'wdx','20180312',array('0','0','0','0'),'20180312';
hive> select name,array(active_num[0],active_num[1],active_num[2],active_num[3]) from temp.array_test;
OK
wdx ["0","0","0","0"]
Time taken: 0.06 seconds, Fetched: 1 row(s)
insert overwrite table temp.actvice_array_test partition(dt)
select
name, active_date,
case when active_date = '20180312' then
array(active_num[1],active_num[2],active_num[3],'1')
else array(active_num[1],active_num[2],active_num[3],'0') end,
'20180312'
from temp.array_test
where dt = '20180312';
hive> select * from temp.actvice_array_test;
OK
wdx 20180312 ["0","0","0","1"] 20180312
Hive复杂数据类型:array、map、struct
参考技术A 目前所学的复杂数据类型有三种 array , map , struct 。用这种数据类型的特点就是集合里的每一个字段都是一个具体的信息,不会是那种 key 与 values 的关系
load数据如上所示,一共两个字段, ruoze 和他们工作的城市
也就是字段与字段之间的分割用table array字段之间的分割用“ , ”。
array_contains 这个函数是array_contains(array字段,‘字段包含的内容’)
比如以上就是array字段包含 tianjin 的数据。
以上数据一共有3个字段,分别为id,name,member。其中member里的内容都是以 key:values 的形式出现的,若是这种形式一般用 map 这种复杂数据类型
struct('a',1,2,3,4) (这个数据类型的特点就是可以包含各种各样的数据类型。但是 struct 可以是任意数据类型,在写struct数据类型时,在 <> 中要写清楚struct字段中的字段名称跟数据类型)
以上是关于hive复合数据类型array的主要内容,如果未能解决你的问题,请参考以下文章