注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

being23

写给未来的自己

 
 
 

日志

 
 
关于我

真正的坚定,就是找到力量去做自己喜欢的事情,并为之努力,这样才会觉得生活是幸福的。

网易考拉推荐

hive map嵌套map  

2014-09-24 21:30:49|  分类: work@oppo |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

首先 确认字段是否可以定义成map嵌套map类型

hive> explain
    > create table test2(id int,a MAP<STRING, MAP<STRING,STRING>>)
    > row format delimited fields terminated by '\t' 
    > collection items terminated by ','
    > MAP KEYS TERMINATED BY ':';
OK
...

接下来,确认需要load的文件格式,具体就是map的key分隔符如何指定。这里面临一个问题——设置MAP KEYS TERMINATED BY ':',是作用于外层map,还是内层map。

google后发现,hive支持8个层级的分隔符,依次是\001,\002,\003...\008HIVE nested ARRAY in MAP data type)。

经过一番尝试,内层map的元素之间使用分隔符\004,key通过分隔符\005指示;外层map的元素之间依旧使用分隔符,,key依旧通过:指示,可以完成。测试数据如下——

外层map只有一个元素

1\tkey_out0:key_in01\005val_in01\004key_in02\005val_in02

查询结果

hive> select * from test2;
OK    
1       {"key_out0":{"key_in01":"val_in01","key_in02":"val_in02"}}

外层map两个元素

1\tkey_out0:key_in01\005val_in01\004key_in02\005val_in02,key_out1:key_in01\005val_in01\004key_in02\005val_in02

查询结果

hive> select * from test2;
OK    
1       {"key_out0":{"key_in01":"val_in01","key_in02":"val_in02"},"key_out1":{"key_in01":"val_in01","key_in02":"val_in02"}}

2014-09-24@前海花园

  评论这张
 
阅读(220)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017