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使用
建表:
- hive> create table student_test(id INT, info struct<name:STRING, age:INT>)
- > ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
- > COLLECTION ITEMS TERMINATED BY ':';
- OK
- Time taken: 0.446 seconds
'FIELDS TERMINATED BY' :字段与字段之间的分隔符
''COLLECTION ITEMS TERMINATED BY' :一个字段各个item的分隔符
导入数据:
- $ cat test5.txt
- 1,zhou:30
- 2,yan:30
- 3,chen:20
- 4,li:80
- hive> LOAD DATA LOCAL INPATH '/home/work/data/test5.txt' INTO TABLE student_test;
- Copying data from file:/home/work/data/test5.txt
- Copying file: file:/home/work/data/test5.txt
- Loading data to table default.student_test
- OK
- Time taken: 0.35 seconds
查询:
- hive> select info.age from student_test;
- Total MapReduce jobs = 1
- ......
- Total MapReduce CPU Time Spent: 490 msec
- OK
- 30
- 30
- 20
- 80
- Time taken: 21.677 seconds
Array使用
建表:
- hive> create table class_test(name string, student_id_list array<INT>)
- > ROW FORMAT DELIMITED
- > FIELDS TERMINATED BY ','
- > COLLECTION ITEMS TERMINATED BY ':';
- OK
- Time taken: 0.099 seconds
导入数据:
- $ cat test6.txt
- 034,1:2:3:4
- 035,5:6
- 036,7:8:9:10
- hive> LOAD DATA LOCAL INPATH '/home/work/data/test6.txt' INTO TABLE class_test ;
- Copying data from file:/home/work/data/test6.txt
- Copying file: file:/home/work/data/test6.txt
- Loading data to table default.class_test
- OK
- Time taken: 0.198 seconds
查询:
- hive> select student_id_list[3] from class_test;
- Total MapReduce jobs = 1
- ......
- Total MapReduce CPU Time Spent: 480 msec
- OK
- 4
- NULL
- 10
- Time taken: 21.574 seconds
Map使用
建表:
- hive> create table employee(id string, perf map<string, int>)
- > ROW FORMAT DELIMITED
- > FIELDS TERMINATED BY '\t'
- > COLLECTION ITEMS TERMINATED BY ','
- > MAP KEYS TERMINATED BY ':';
- OK
- Time taken: 0.144 seconds
‘MAP KEYS TERMINATED BY’ :key value分隔符
导入数据:
- $ cat test7.txt
- 1 job:80,team:60,person:70
- 2 job:60,team:80
- 3 job:90,team:70,person:100
- hive> LOAD DATA LOCAL INPATH '/home/work/data/test7.txt' INTO TABLE employee;
查询:
- hive> select perf['person'] from employee;
- Total MapReduce jobs = 1
- ......
- Total MapReduce CPU Time Spent: 460 msec
- OK
- 70
- NULL
- 100
- Time taken: 20.902 seconds
- hive> select perf['person'] from employee where perf['person'] is not null;
- Total MapReduce jobs = 1
- .......
- Total MapReduce CPU Time Spent: 610 msec
- OK
- 70
- 100
- Time taken: 21.989 seconds
- hive>
- <span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal;">
- </span></span>
本文转自:http://blog.csdn.net/yfkiss/article/details/7842014
相关推荐
Hive中支持多种数据类型除了常用的TINYINT、SMALLINT、INT、BIGINT、BOOLEAN、FLOAT、DOUBLE、STRING、BINARY、TIMESTAMP、DECIMAL、DATE、VARCHAR、CHAR类型外,当然还包含一些复杂的数据类型(array、map、struct...
列举了hive中的复合类型的使用,map array struct
Hive作为一个大数据分析工具,提供了多种数据类型,其中包括了复杂数据类型如Array、Map和Struct。这些复杂数据类型可以满足各种复杂的数据存储需求。 一、Array类型 Array类型是Hive中的一种复杂数据类型,用于...
- **复杂数据类型** 包括:ARRAY、MAP、STRUCT和UNIONTYPE,它们可以存储结构化或半结构化的数据。 - **Hive类型转换** 在创建表或处理数据时,可能需要进行类型转换,这可以通过HQL的CAST函数实现。 3. **Hive...
- **复合类型**: ARRAY、MAP、STRUCT、UNION #### 三、Hive DDL数据定义语法 - **创建数据库**: - `CREATE DATABASE database_name;` - **查看数据库定义**: - `DESCRIBE DATABASE EXTENDED database_name;` - *...
- **数据类型**:Hive支持多种数据类型,包括基本类型(如STRING、INT、FLOAT)和复杂类型(如ARRAY、MAP、STRUCT)。 - **表的设计**:根据业务需求选择合适的分区策略,如时间戳、地理位置等,以便于快速定位...
在大数据处理领域,Hive 是一个非常重要的工具,它提供了基于 Hadoop 的数据仓库功能,让用户可以使用 SQL 类似的查询语言(HQL)对大规模数据进行分析。"生成Hive建表语句"这个主题主要涉及到如何创建Hive表结构,...
- 复合数据类型(ARRAY、MAP、STRUCT)的使用技巧。 5. **Hive高级特性** - 索引创建与管理; - HiveServer2/beeline的使用; - Java操作Hive的方法; - 内置函数及用户自定义函数(UDF)的编写; - 窗口和...
- **复杂数据类型**:如 ARRAY、MAP、STRUCT 等。 - **数值类型**:包括整数、浮点数等。 - **字符串类型**:用于存储文本数据。 2. **使用数值类型** - **操作步骤**:定义表格时指定数值类型的列,并插入...
复杂类型函数主要操作Hive中支持的复杂数据类型,如Map、Array和Struct。Map函数通过键值对创建Map,Struct函数通过指定的字段值创建结构体,Array函数通过指定的元素创建数组。对复杂类型函数的操作包括通过索引...
除了基本数据类型,Hive还引入了复杂数据类型,如数组(Array)、映射(Map)、结构体(Struct)和联合体(UnionType),以适应复杂的数据模型。 4.3 数据类型建议 选择合适的数据类型对于优化查询性能至关重要...
以及复合类型如数组(array)、映射(map)、结构体(struct)。需要注意的是,Hive的数据类型并不支持精度或长度设定,也没有专门的日期或时间类型。 #### 四、Hive的部署与配置 部署Hive通常涉及到几个关键组件:...
4. **Hive数据类型**:Hive支持多种数据类型,包括基本类型(如STRING, INT, BOOLEAN)和复杂类型(如ARRAY, MAP, STRUCT)。 5. **HQL语法**:HQL支持SELECT, FROM, WHERE, GROUP BY, JOIN等SQL关键字,允许用户...
- 复杂数据类型:如ARRAY、MAP、STRUCT、UNION等。 Hive提供了DDL(数据定义语言)来定义数据结构,包括创建数据库、表、视图等。通过DDL可以进行表的创建、删除、分区操作等。 数据定义语言-DDL包括: - 创建...
Hive的数据类型包括基本类型(如TINYINT、STRING、TIMESTAMP)和复合类型(如ARRAY、MAP、STRUCT和UNIONTYPE)。数据存储基于HDFS,支持多种文件格式,如TextFile和SequenceFile。 **Kettle简介** Kettle是一款强大...
复合类型构造函数如map、struct、named_struct、array和create_union允许在查询中创建和操作复杂的数据类型。 复合类型操作符可用于从map、array、struct中提取元素,如get_json_object用于处理JSON格式数据。 ...
Hive 函数参考手册 Hive 函数是 Hive 中的内置函数,用于对数据进行处理和分析。这些函数可以分为四大类:关系运算符、...在使用 Hive 函数时,需要注意函数的语法和参数类型,以确保正确地使用函数并获得正确的结果。
- **其他数据类型**:`array`、`map`、`struct` 值得注意的是,Hive目前不支持日期和时间类型以及二进制串类型。 #### 三、内置函数 Hive提供了丰富的内置函数,以支持常见的数据处理需求。例如数学函数、字符串...