Hive03_数据类型

数据类型

1 案例实操

(1)假设某表有如下一行,我们用 JSON 格式来表示其数据结构。在 Hive 下访问的格式为

json 复制代码
{
 "name": "wukong",
 "friends": ["bajie" , "lili"] , //列表 Array, 
 "children": { //键值 Map,
 "xiao sun": 18 ,
 "xiaoxiao sun": 19
 }
 "address": { //结构 Struct,
 "street": "hui long guan",
 "city": "beijing"
 }
}

(2)基于上述数据结构,我们在 Hive 里创建对应的表,并导入数据。

创建本地测试文件 hive/datas/ test.txt

html 复制代码
wukong,bajie_lili,xiao sun:18_xiaoxiao sun:19,hui long guan_beijing
yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing

注意:MA,STRUCT 和 ARRAY 里的元素间关系都可以用同一个字符表示,这里用"_"。

(3)Hive 上创建测试表 test

sql 复制代码
create table test(
name string,
friends array<string>,
children map<string, int>,
address struct<street:string, city:string>
)
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';

字段解释:

row format delimited fields terminated by ',' -- 列分隔符

collection items terminated by '_' --MAP STRUCT 和 ARRAY 的分隔符(数据分割符号)

map keys terminated by ':' -- MAP 中的 key 与 value 的分隔符

lines terminated by '\n'; -- 行分隔符

(4)导入文本数据到测试表

在 hive/datas下创建info.sql,写入上面的sql语句。

执行sql文件,创建表结构

sh 复制代码
[root@hadoop2 hive]# bin/hive -f /usr/soft/hive/datas/info.sql 

启动sql,查看表结构是否创建成功;

将test.txt中的数据,写入到表中

sh 复制代码
[root@hadoop2 datas]# hadoop fs -put friend.txt /user/hive/warehouse/info

5)访问三种集合列里的数据,以下分别是 ARRAY,MAP,STRUCT 的访问方式

sql 复制代码
hive (default)> select friends[1],children['xiao sun'],address.city from 
test
where name="wukong";

查询结果:

OK

_c0 _c1 city

lili 18 beijing

Time taken: 0.076 seconds, Fetched: 1 row(s)

果:**

OK

_c0 _c1 city

lili 18 beijing

Time taken: 0.076 seconds, Fetched: 1 row(s)

相关推荐
培培说证11 小时前
中专生做电商客服,能转电商运营吗?需要学习什么?
大数据·职场和发展
码界奇点11 小时前
时序数据库选型指南从大数据视角看IoTDB的核心优势
大数据·时序数据库·iotdb
数据超市11 小时前
快速CAD转到PPT的方法,带教程
大数据·python·科技·信息可视化·数据挖掘
TDengine (老段)11 小时前
从细胞工厂到智能制造:Extracellular 用 TDengine 打通数据生命线
java·大数据·数据库·科技·制造·时序数据库·tdengine
PONY LEE13 小时前
Flink 任务调优案例分析
大数据·flink
Hello.Reader13 小时前
Flink DataStream V2 的 Watermark可编排的“流内控制事件”实战
大数据·flink
驾数者13 小时前
Flink SQL核心概念解析:Table API与流表二元性
大数据·sql·flink
TTBIGDATA20 小时前
【Ambari开启Kerberos】KERBEROS SERVICE CHECK 报错
大数据·运维·hadoop·ambari·cdh·bigtop·ttbigdata
开利网络21 小时前
合规底线:健康产品营销的红线与避坑指南
大数据·前端·人工智能·云计算·1024程序员节
非著名架构师21 小时前
量化“天气风险”:金融与保险机构如何利用气候大数据实现精准定价与投资决策
大数据·人工智能·新能源风光提高精度·疾风气象大模型4.0