语法逻辑

1.基本数据类型
2.集合数据类型
2.1集合数据类型测试
假设某表有如下一行,我们用 JSON 格式来表示其数据结构。在 Hive 下访问的格式为:
{    
    "name": "songsong",    
 "friends": ["bingbing" , "lili"] , //列表 Array,      
 "children": {                      //键值 Map,                    
     "xiao song": 18 ,         
     "xiaoxiao song": 19     }    
 "address": {                       //结构 Struct,         
     "street": "hui long guan" ,         
     "city": "beijing"      }
}
创建本地数据测试文件 test.txt 
songsong,bingbing_lili,xiao song:18_xiaoxiao song:19,hui long guan_beijing 
yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing 
建表语句
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,STRUCT 和 ARRAY 里的元素间关系都可以用同一个字符表示,这 里用“_”。  因为都是集合数据类型
    map keys terminated by ':' 
    lines terminated by '\n'; 
导入文本数据到测试表 
load data local inpath "/opt/module/datas/test.txt" into table test; 
访问三种集合列里的数据,以下分别是 ARRAY,MAP,STRUCT 的访问方式 

3.类型转换

4.DDL操作
①、创建数据库   创建操作
1)创建一个数据库,数据库在 HDFS 上的默认存储路径是/user/hive/warehouse
create database db_hive;
注意:默认在/user/hive/warehouse文件夹下创建一个库 db_hive.db
该文件夹下当前还没有创建表,所以为空
2)避免要创建的数据库已经存在错误,增加 if not exists 判断。(标准写法) 
create database if not exists db_hive; 
3)创建一个数据库,指定数据库在 HDFS 上存放的位置 
create database db_hive2 location '/db_hive2.db'; 
②查询数据库  查询操作
1) 显示数据库
show databases;
2) 过滤显示查询的数据库 
show databases like 'd*';
3) 查看数据库详情 
desc database db_hive;
4) 显示数据库详细信息,extended 
desc database extended db_hive

③ 修改数据库 
用户可以使用 ALTER DATABASE 命令为某个数据库的 DBPROPERTIES 设置键-值对属性值,来描述这个数据库的属性信息。数据库的其他元数据信息都是不可更改的,包括数
据库名和数据库所在的目录位置。 
alter database db_hive set dbproperties('createtime'='20200630');

④ 删除数据库
1) 删除空数据库
drop database db_hive;
2) 如果删除的数据库不存在,最好采用 if exists 判断数据库是否存在 
 drop database if exists db_hive;
3) 如果数据库不为空,可以采用 cascade 命令,强制删除 
drop database db_hive cascade; 
⑤ 创建表






posted @ 2020-10-20 09:34  大洋游侠1  阅读(108)  评论(0编辑  收藏  举报