`

hive array、map、struct使用

    博客分类:
  • hive
阅读更多

hive提供了复合数据类型:
Structs: structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域a
Maps(K-V对):访问指定域可以通过["指定域名称"]进行,例如,一个Map M包含了一个group-》gid的kv对,gid的值可以通过M['group']来获取
Arrays:array中的数据为相同类型,例如,假如array A中元素['a','b','c'],则A[1]的值为'b'

Struct使用

建表:

[plain] view plaincopy
 
  1. hive> create table student_test(id INT, info struct<name:STRING, age:INT>)  
  2.     > ROW FORMAT DELIMITED FIELDS TERMINATED BY ','                         
  3.     > COLLECTION ITEMS TERMINATED BY ':';                                   
  4. OK  
  5. Time taken: 0.446 seconds  

'FIELDS TERMINATED BY' :字段与字段之间的分隔符
''COLLECTION ITEMS TERMINATED BY' :一个字段各个item的分隔符 
导入数据:

[plain] view plaincopy
 
  1. $ cat test5.txt   
  2. 1,zhou:30  
  3. 2,yan:30  
  4. 3,chen:20  
  5. 4,li:80  
  6. hive> LOAD DATA LOCAL INPATH '/home/work/data/test5.txt' INTO TABLE student_test;  
  7. Copying data from file:/home/work/data/test5.txt  
  8. Copying file: file:/home/work/data/test5.txt  
  9. Loading data to table default.student_test  
  10. OK  
  11. Time taken: 0.35 seconds  

查询:

[plain] view plaincopy
 
  1. hive> select info.age from student_test;  
  2. Total MapReduce jobs = 1  
  3. ......  
  4. Total MapReduce CPU Time Spent: 490 msec  
  5. OK  
  6. 30  
  7. 30  
  8. 20  
  9. 80  
  10. Time taken: 21.677 seconds  


Array使用
建表:

[plain] view plaincopy
 
  1. hive> create table class_test(name string, student_id_list array<INT>)  
  2.     > ROW FORMAT DELIMITED                                              
  3.     > FIELDS TERMINATED BY ','                                          
  4.     > COLLECTION ITEMS TERMINATED BY ':';                               
  5. OK  
  6. Time taken: 0.099 seconds  

导入数据:

[plain] view plaincopy
 
  1. $ cat test6.txt   
  2. 034,1:2:3:4  
  3. 035,5:6  
  4. 036,7:8:9:10  
  5. hive>  LOAD DATA LOCAL INPATH '/home/work/data/test6.txt' INTO TABLE class_test ;  
  6. Copying data from file:/home/work/data/test6.txt  
  7. Copying file: file:/home/work/data/test6.txt  
  8. Loading data to table default.class_test  
  9. OK  
  10. Time taken: 0.198 seconds  

查询:

[plain] view plaincopy
 
  1. hive> select student_id_list[3] from class_test;  
  2. Total MapReduce jobs = 1  
  3. ......  
  4. Total MapReduce CPU Time Spent: 480 msec  
  5. OK  
  6. 4  
  7. NULL  
  8. 10  
  9. Time taken: 21.574 seconds  


Map使用
建表:

[plain] view plaincopy
 
  1. hive> create table employee(id string, perf map<string, int>)       
  2.     > ROW FORMAT DELIMITED                                          
  3.     > FIELDS TERMINATED BY '\t'                                
  4.     > COLLECTION ITEMS TERMINATED BY ','                       
  5.     > MAP KEYS TERMINATED BY ':';                                    
  6. OK  
  7. Time taken: 0.144 seconds  

‘MAP KEYS TERMINATED BY’ :key value分隔符

导入数据:

[plain] view plaincopy
 
  1. $ cat test7.txt   
  2. 1       job:80,team:60,person:70  
  3. 2       job:60,team:80  
  4. 3       job:90,team:70,person:100  
  5. hive>  LOAD DATA LOCAL INPATH '/home/work/data/test7.txt' INTO TABLE employee;  

查询:

[plain] view plaincopy
 
  1. hive> select perf['person'] from employee;  
  2. Total MapReduce jobs = 1  
  3. ......  
  4. Total MapReduce CPU Time Spent: 460 msec  
  5. OK  
  6. 70  
  7. NULL  
  8. 100  
  9. Time taken: 20.902 seconds  
  10. hive> select perf['person'] from employee where perf['person'] is not null;     
  11. Total MapReduce jobs = 1  
  12. .......  
  13. Total MapReduce CPU Time Spent: 610 msec  
  14. OK  
  15. 70  
  16. 100  
  17. Time taken: 21.989 seconds  
  18. hive>   
  19. <span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal;">  
  20. </span></span>  

 

本文转自:http://blog.csdn.net/yfkiss/article/details/7842014

分享到:
评论

相关推荐

    0437-如何在Hive中使用Struct类型

    Hive中支持多种数据类型除了常用的TINYINT、SMALLINT、INT、BIGINT、BOOLEAN、FLOAT、DOUBLE、STRING、BINARY、TIMESTAMP、DECIMAL、DATE、VARCHAR、CHAR类型外,当然还包含一些复杂的数据类型(array、map、struct...

    hive复合类型使用

    列举了hive中的复合类型的使用,map array struct

    Hive复杂数据类型使用介绍

    Hive作为一个大数据分析工具,提供了多种数据类型,其中包括了复杂数据类型如Array、Map和Struct。这些复杂数据类型可以满足各种复杂的数据存储需求。 一、Array类型 Array类型是Hive中的一种复杂数据类型,用于...

    Hive使用手册Hive使用手册

    - **复杂数据类型** 包括:ARRAY、MAP、STRUCT和UNIONTYPE,它们可以存储结构化或半结构化的数据。 - **Hive类型转换** 在创建表或处理数据时,可能需要进行类型转换,这可以通过HQL的CAST函数实现。 3. **Hive...

    Hive教程.pdf

    - **复合类型**: ARRAY、MAP、STRUCT、UNION #### 三、Hive DDL数据定义语法 - **创建数据库**: - `CREATE DATABASE database_name;` - **查看数据库定义**: - `DESCRIBE DATABASE EXTENDED database_name;` - *...

    Hive-工具篇_hive_

    - **数据类型**:Hive支持多种数据类型,包括基本类型(如STRING、INT、FLOAT)和复杂类型(如ARRAY、MAP、STRUCT)。 - **表的设计**:根据业务需求选择合适的分区策略,如时间戳、地理位置等,以便于快速定位...

    生成hive建表语句

    在大数据处理领域,Hive 是一个非常重要的工具,它提供了基于 Hadoop 的数据仓库功能,让用户可以使用 SQL 类似的查询语言(HQL)对大规模数据进行分析。"生成Hive建表语句"这个主题主要涉及到如何创建Hive表结构,...

    《企业级Hive实战课程》大纲

    - 复合数据类型(ARRAY、MAP、STRUCT)的使用技巧。 5. **Hive高级特性** - 索引创建与管理; - HiveServer2/beeline的使用; - Java操作Hive的方法; - 内置函数及用户自定义函数(UDF)的编写; - 窗口和...

    Apache-Hive-Cookbook

    - **复杂数据类型**:如 ARRAY、MAP、STRUCT 等。 - **数值类型**:包括整数、浮点数等。 - **字符串类型**:用于存储文本数据。 2. **使用数值类型** - **操作步骤**:定义表格时指定数值类型的列,并插入...

    hive常用函数

    复杂类型函数主要操作Hive中支持的复杂数据类型,如Map、Array和Struct。Map函数通过键值对创建Map,Struct函数通过指定的字段值创建结构体,Array函数通过指定的元素创建数组。对复杂类型函数的操作包括通过索引...

    Hive实战使用指南1

    除了基本数据类型,Hive还引入了复杂数据类型,如数组(Array)、映射(Map)、结构体(Struct)和联合体(UnionType),以适应复杂的数据模型。 4.3 数据类型建议 选择合适的数据类型对于优化查询性能至关重要...

    hive编程入门课程

    以及复合类型如数组(array)、映射(map)、结构体(struct)。需要注意的是,Hive的数据类型并不支持精度或长度设定,也没有专门的日期或时间类型。 #### 四、Hive的部署与配置 部署Hive通常涉及到几个关键组件:...

    Hive大数据仓库-笔记整理 (一)2020年最新版.pdf

    4. **Hive数据类型**:Hive支持多种数据类型,包括基本类型(如STRING, INT, BOOLEAN)和复杂类型(如ARRAY, MAP, STRUCT)。 5. **HQL语法**:HQL支持SELECT, FROM, WHERE, GROUP BY, JOIN等SQL关键字,允许用户...

    hive 简明教程

    - 复杂数据类型:如ARRAY、MAP、STRUCT、UNION等。 Hive提供了DDL(数据定义语言)来定义数据结构,包括创建数据库、表、视图等。通过DDL可以进行表的创建、删除、分区操作等。 数据定义语言-DDL包括: - 创建...

    java大数据内容_6Hive、Kettle

    Hive的数据类型包括基本类型(如TINYINT、STRING、TIMESTAMP)和复合类型(如ARRAY、MAP、STRUCT和UNIONTYPE)。数据存储基于HDFS,支持多种文件格式,如TextFile和SequenceFile。 **Kettle简介** Kettle是一款强大...

    hive函数大全

    复合类型构造函数如map、struct、named_struct、array和create_union允许在查询中创建和操作复杂的数据类型。 复合类型操作符可用于从map、array、struct中提取元素,如get_json_object用于处理JSON格式数据。 ...

    hive函数参考手册,包含常用的hive内置函数.doc

    Hive 函数参考手册 Hive 函数是 Hive 中的内置函数,用于对数据进行处理和分析。这些函数可以分为四大类:关系运算符、...在使用 Hive 函数时,需要注意函数的语法和参数类型,以确保正确地使用函数并获得正确的结果。

    hive入门.pdf

    - **其他数据类型**:`array`、`map`、`struct` 值得注意的是,Hive目前不支持日期和时间类型以及二进制串类型。 #### 三、内置函数 Hive提供了丰富的内置函数,以支持常见的数据处理需求。例如数学函数、字符串...

Global site tag (gtag.js) - Google Analytics