zoukankan      html  css  js  c++  java
  • hive复合数据类型map

    复合数据类型map

    数据如下

    1,zhangsan,father:xiaoming#mother:xiaohuang#brother:xiaoxu,28

    2,lisi,father:mayun#mother:huangyi#brother:guanyu,22

    3,wangwu,father:wangjianlin#mother:ruhua#sister:jingtian,29

    4,mayun,father:mayongzhen#mother:angelababy,26

     

    建表

    create table t_family(id int, name string, family_members map<string,string>, age int)

    row format delimited fields terminated by ','

    collection items terminated by '#'

    map keys terminated by ':'; -----注意!!!!

     

    插入数据

    load data local inpath '/home/map.txt' into table t_family;

     

    查出每个人的爸爸

    select id,name,family_members["father"] from t_family;

     

    查出每个人有哪些亲属关系

    select id,name,map_keys(family_members) as ralations from t_family;

     

    查出每个人的亲人名字

    select id,name,map_values(family_members) as ralations from t_family;

     

    查出每个人的亲人数量

    select id,name,size(family_members) as relations,age

    from t_family;

     

    查出所有拥有兄弟的人及他的兄弟是谁

    select id,name,age, family_members["brother"] as brother from t_family where array_contains(map_keys(family_members),"brother");

  • 相关阅读:
    CLR Via
    HTML&XML
    SNS研究
    DotNet&C#
    电子商务
    WCF学习
    SQL
    构架设计
    JS&Ajax
    NHibernate之旅系列文章导航
  • 原文地址:https://www.cnblogs.com/lucas-zhao/p/11901875.html
Copyright © 2011-2022 走看看