`
chakey
  • 浏览: 359607 次
  • 性别: Icon_minigender_1
  • 来自: 水星
社区版块
存档分类
最新评论

【4】HIVE中map,array和structs使用

    博客分类:
  • Hive
阅读更多

1:怎样导入文本文件(格式是怎样的?),2:怎样查询数据,已经能否在join中使用?在子查询中使用?等等

知道怎么在hive中导入数组不?
例如:我想把 数组[1,2,3] 和 数组 ["a","b","c"]
导入到table1中
create table table2 ( a array<int> , b array<string>);

那么 我如何 导入呢?使得
select * from table1;
j结果为:
[1,2,3] ["a","b","c"]

同样 在 hive 中 对于 map
怎样 查询呢?
例如 
create table table2 ( a MAP<STRING,ARRAY<STRING>>);
select * from table2 结果为:
{"d01":["d011","d012"],"d02":["d021","d022"]}
{"d01":["d011","d012"],"d02":null}
{"d01":[null,"d012"],"d02":["d021","d022"]}
那么 我想获得 key 为 d01的value值 
该怎么操作呢

关于数组的操作说明:
drop table table2;

create table table2 (a array<string>, b array<string>)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ',';


load data local inpath "../hive/examples/files/arraytest.txt"  overwrite into table table2;

arraytest.txt中的数据形式为:(不同数组间用\t分割,同一数组内不同元素用逗号分割)
b00,b01        b00,b01
b00,b01        b00,b01
b00,b01        b00,b01
b00,b01        b00,b01


hive> select * from table2;

OK
["b00","b01"]   ["b00","b01"]
["b00","b01"]   ["b00","b01"]
["b00","b01"]   ["b00","b01"]
["b00","b01"]   ["b00","b01"]
Time taken: 0.056 seconds

hive> select a from table2;
OK
["b00","b01"]
["b00","b01"]
["b00","b01"]
["b00","b01"]
Time taken: 15.903 seconds

hive> select a[0] from table2;
OK
b00
b00
b00
b00
Time taken: 12.913 seconds

hive> select * from table2 where a[0] = b[0];
OK
["b00","b01"]   ["b00","b01"]
["b00","b01"]   ["b00","b01"]
["b00","b01"]   ["b00","b01"]
["b00","b01"]   ["b00","b01"]
Time taken: 11.803 seconds

 

关于map的操作说明:
drop table table2;

hive> CREATE TABLE table2 (foo STRING , bar MAP<STRING, STRING>)
    > ROW FORMAT DELIMITED
    > FIELDS TERMINATED BY '\t'
    > COLLECTION ITEMS TERMINATED BY ','
    > MAP KEYS TERMINATED BY ':'
    > STORED AS TEXTFILE;


hive> load data local inpath "../hive/examples/files/maptest.txt"  overwrite into table table2;
maptest.txt中的文件格式为:(不同列之间用一个tab分割,map中key和value用冒号分割,不同K/V间用逗号分割)
a00        b0:b01,b1:b11
a01        b1:b11,b2:b12
a02        b2:b12,b3:b13
a03        b3:b13,b4:b14

hive> select bar from table2;
OK
{"b0":"b01","b1":"b11"}
{"b1":"b11","b2":"b12"}
{"b2":"b12","b3":"b13"}
{"b3":"b13","b4":"b14"}
Time taken: 19.237 seconds
怎么根据 key来查询value呢?
hive> select bar['b1'] from table2;
OK
b11
b11
NULL
NULL
Time taken: 11.65 seconds

查看map中的键值对个数:
hive> select size(bar) from table2;
OK
2
2
2
2
Time taken: 12.137 seconds

 

 

分享到:
评论

相关推荐

    Hive使用手册Hive使用手册

    1 Hive 概念与连接使用: 2 2 Hive支持的数据类型: 2 2.1原子数据类型: 2 2.2复杂数据类型: 2 2.3 Hive类型转换: 3 3 Hive创建/删除数据库 3 3.1创建数据库: 3 3.2 删除数据库: 3 4 Hive 表相关语句 3 4.1 Hive ...

    hive复合类型使用

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

    presto和hive的使用区别

    Hive是把一个查询转化成多个MapReduce任务,然后一个接一个执行。...然而,Presto没有使用MapReduce,它是通过一个定制的查询和执行引擎来完成的。它的所有的查询处理是在内存中,这也是它的性能很高的一个主要原因。

    Hive用户指南(Hive_user_guide)_中文版.pdf

    因此, Hive 中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的。 而数据库中的数据通常是需要经常进行修改的,因此可以使用 INSERT INTO ... VALUES 添加数据,使用 UPDATE ... SET 修改数据。 ...

    hive编程指南中文

    《Hive编程指南》是一本Apache Hive的编程指南 旨在介绍如何使用Hive的SQL方法 HiveQL来汇总 查询和分析存储在Hadoop分布式文件系统上的大数据集合 全书通过大量的实例 首先介绍如何在用户环境下安装和配置Hive 并对...

    Hive - A Warehousing Solution Over a Map-Reduce.pdf

    The size of data sets being collected and analyzed in the industry for business intelligence is ... Section 4 provides a walk-through of the demonstration. We conclude with future work in Section 5.

    大数据之Hive官方文档简要翻译(中文文档)

    将官方文档做了简要翻译 ...元数据使用JPOX ORM解决方案(Data Nucleus)持久化,因此它支持的任何数据库都可以被Hive使用。大多数商业关 系数据库和许多开源数据库都受到支持。请参阅下面一节中支持的数据库列表。

    Apache Hive 中文手册_hive_

    Apache Hive 是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供...

    利用Hive进行复杂用户行为大数据分析及优化案例

    利用Hive进行复杂用户行为大数据分析及优化案例(全套视频+课件+代码+讲义+工具软件),具体内容包括: 01_自动批量加载数据到hive 02_Hive表批量加载数据的脚本实现(一) ...17_Hive中使用Python脚本进行预处理

    Hive3.1.2编译源码

    使用hive3.1.2和spark3.0.0配置hive on spark的时候,发现官方下载的hive3.1.2和spark3.0.0不兼容,hive3.1.2对应的版本是spark2.3.0,而spark3.0.0对应的hadoop版本是hadoop2.6或hadoop2.7。 所以,如果想要使用高...

    部分普通sql查询在hive中的实现方式

    部分普通sql查询在hive中的实现方式详细说明;

    基于 Antlr4 的 Hive SQL 解析.zip

    基于 Antlr4 的 Hive SQL 解析.zip 大学生课程设计 课程设计 自己大二写的课程设计

    【63课时完整版】大数据实践HIVE详解及实战

    22.Hive中使用自定义UDF实现日期格式转换 23. HiveServer2的介绍及三种连接方式 24.Hive元数据、fetch task和严格模式的介绍 第3章:Sqoop Sqoop及用户行为分析案例 25.CDH版本框架的介绍 26. CDH版本框架的环境...

    Hive中SQL详解

    Hive中SQL详解

    hive修改过的jdbc包,用于显示hive中的中文内容

    如果系统语言不是utf-8的话,通过jdbc调用hive的数据时,中文会是乱码,通过修改jdbc包加上utf8标识后就好了,这个是改好了的包

    hive介绍和hive环境搭建

    hive介绍和hive环境搭建。。一、 安装mysql 1. 使用root用户: su root 2. 安装 yum install mysql yum install mysql-server yum install mysql-devel(可选) 3. 修改配置信息,添加: vim /etc/my.cnf ...

    hive

    hive hive hive hive hive hive hive hive hive hive hive hive

    centos7中hive的安装和使用

    不多说什么,安装hive和mysql,以及一些使用,想学的可以看看文档,我换点积分,仅此而已

    String、Array与Date、String的转化

    本工具类用于String、Array和String、Date之间的转化

    1、通过亿级数据量在hive和impala中查询比较text、orc和parquet性能表现(二)

    1、通过亿级数据量在hive和impala中查询比较text、orc和parquet性能表现(二) 网址:https://blog.csdn.net/chenwewi520feng/article/details/130465463 本文通过在hdfs中三种不同数据格式文件存储相同数量的数据,...

Global site tag (gtag.js) - Google Analytics