zoukankan      html  css  js  c++  java
  • 集合数据类型

    一、array

    hadoop@hadoop:~/input/hive/collection$ sudo vim person.txt

    person.txt内容、里面的制表符使用 (tab键)

    biansutao       beijing,shanghai,tianjin,hangzhou
    linan   changchu,chengdu,wuhan
    

    hive> create table  person(name string,work_locations array<string>)
        > ROW FORMAT DELIMITED
        > FIELDS TERMINATED BY ' '
        > COLLECTION ITEMS TERMINATED BY ',';

    OK
    Time taken: 5.065 seconds

    hive> load data local inpath '/home/hadoop/input/hive/collection/person.txt' overwrite into table person;
    Loading data to table default.person
    OK
    Time taken: 1.971 seconds
    hive> select * from person;
    OK
    biansutao    ["beijing","shanghai","tianjin","hangzhou"]
    linan    ["changchu","chengdu","wuhan"]
    Time taken: 0.222 seconds, Fetched: 2 row(s)
    hive> select name from person;
    OK
    biansutao
    linan
    Time taken: 0.209 seconds, Fetched: 2 row(s)
    hive> select work_locations[0] from person;
    OK
    beijing
    changchu
    Time taken: 0.217 seconds, Fetched: 2 row(s)
    hive> select work_locations from person;   
    OK
    ["beijing","shanghai","tianjin","hangzhou"]
    ["changchu","chengdu","wuhan"]
    Time taken: 0.21 seconds, Fetched: 2 row(s)
    hive> select work_locations[3] from person;   
    OK
    hangzhou
    NULL
    Time taken: 0.215 seconds, Fetched: 2 row(s)
    hive> select work_locations[4] from person;   
    OK
    NULL
    NULL
    Time taken: 0.2 seconds, Fetched: 2 row(s)
    hive>

    二、map

    hadoop@hadoop:~/input/hive/collection$ sudo vim score.txt
    

    score.txt

    biansutao       '数学':80,'语文':89,'英语':95
    jobs    '语文':60,'数学':80,'英语':99
    

    hive> create table score(name string, score map<string,int>)
        > ROW FORMAT DELIMITED
        > FIELDS TERMINATED BY ' '
        > COLLECTION ITEMS TERMINATED BY ','
        > MAP KEYS TERMINATED BY ':';

    OK
    Time taken: 0.513 seconds
    hive> load data local inpath '/home/hadoop/input/hive/collection/score.txt' overwrite into table score;
    Loading data to table default.score
    OK
    Time taken: 1.077 seconds
    hive>  select * from score;
    OK
    biansutao    {"'数学'":80,"'语文'":89,"'英语'":95}
    jobs    {"'语文'":60,"'数学'":80,"'英语'":99}
    Time taken: 0.198 seconds, Fetched: 2 row(s)
    hive>  select name from score;
    OK
    biansutao
    jobs
    Time taken: 0.18 seconds, Fetched: 2 row(s)
    hive>  select t.score from score t;
    OK
    {"'数学'":80,"'语文'":89,"'英语'":95}
    {"'语文'":60,"'数学'":80,"'英语'":99}
    Time taken: 0.18 seconds, Fetched: 2 row(s)

    hive> select t.score["'语文'"] from score t;
    OK
    89
    60
    Time taken: 0.24 seconds, Fetched: 2 row(s)
    hive> select t.score["'英语'"] from score t;
    OK
    95
    99
    Time taken: 0.187 seconds, Fetched: 2 row(s)
    hive>

    三、Struts

    hadoop@hadoop:~/input/hive/collection$ sudo vim test.txt
    
    1       english,80
    2       math,89
    3       chinese,95
    

    hive> CREATE TABLE test(id int,course struct<course:string,score:int>)
        ROW FORMAT DELIMITED
        FIELDS TERMINATED BY ' '
        COLLECTION ITEMS TERMINATED BY ',';

    OK
    Time taken: 0.376 seconds
    hive> load data local inpath '/home/hadoop/input/hive/collection/test.txt' overwrite into table test;
    Loading data to table default.test
    OK
    Time taken: 0.709 seconds
    hive> select * from test ;
    OK
    1    {"course":"english","score":80}
    2    {"course":"math","score":89}
    3    {"course":"chinese","score":95}
    Time taken: 0.186 seconds, Fetched: 3 row(s)
    hive> select course from test;
    OK
    {"course":"english","score":80}
    {"course":"math","score":89}
    {"course":"chinese","score":95}
    Time taken: 0.187 seconds, Fetched: 3 row(s)
    hive> select t.course.score from test t;
    OK
    80
    89
    95
    Time taken: 0.198 seconds, Fetched: 3 row(s)

    hive> select t.course.course from test t;
    OK
    english
    math
    chinese
    Time taken: 0.187 seconds, Fetched: 3 row(s)
    hive>

    四、集合

    hadoop@hadoop:~/input/hive/collection$ sudo vim test1.txt
    
    1       english:80,90,70
    2       math:89,78,86
    3       chinese:99,100,82
    

    hive> create table test1(id int,a MAP<STRING,ARRAY<STRING>>)
        > row format delimited fields terminated by ' '
        > collection items terminated by ','
        > MAP KEYS TERMINATED BY ':';

    OK
    Time taken: 0.636 seconds
    hive> select * from test1;
    OK
    Time taken: 0.184 seconds
    hive> load data local inpath '/home/hadoop/input/hive/collection/test1.txt' overwrite into table test1;
    Loading data to table default.test1
    OK
    Time taken: 0.643 seconds
    hive> select * from test1;
    OK
    1    {"english":["80"],"90":null,"70":null}
    2    {"math":["89"],"78":null,"86":null}
    3    {"chinese":["99"],"100":null,"82":null}
    Time taken: 0.174 seconds, Fetched: 3 row(s)
    hive>

  • 相关阅读:
    Spring、Spring Boot 和 Spring Cloud 的关系
    Spring Boot 如何设置支持跨域请求?
    什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
    nginx配置域名,不要端口
    域名解析以及nginx服务器设置
    为什么使用nginx
    RabbitMQ下载与安装(window版)
    spring的@ComponentScan注解
    spring的@EnableScheduling注解
    日志切割: logrotate、python、shell实现
  • 原文地址:https://www.cnblogs.com/apppointint/p/8885279.html
Copyright © 2011-2022 走看看