Hive笔记

基本数据类型

在这里插入图片描述
因为这些基本的数据类型都是 java 中的接口进行实现的,因此与 java 中数据类型是基本一致的:在这里插入图片描述

数据类型的隐式转换

Hive 中基本数据类型遵循以下层次结构,按 照这个层次结构,子类型到祖先类型允许隐式转换。
在这里插入图片描述

数据类型的显示转换

使用cast函数进行强制类型转换,若强制类型转换失败,返回NULL

hive> select cast('1111s' as int); 
OK
NULL 
hive> select cast('1111' as int); 
OK
1111

集合数据类型

包括:array,map,struct,union
在这里插入图片描述

hive > select array(1,2,3);
[1,2,3]

-- 使用[]访问数组元素
hive > select arrp[0] from (select array(1,2,3) arr) tmp;

-- 使用[]访问map元素,若不存在返回NULL
hive > select mymap['1'] from (select map('a', 1, 'b', 2, 'c', 3) as mymap) tmp;

-- 给struct中的字段命名
hive> select named_struct("name", "username1", "id", 7, "salary", 12880.68);
OK{
  "name":"username1","id":7,"salary":12880.68}

-- 使用 列名.字段名 访问具体信息
hive> select userinfo.id 
	> from (select named_struct("name", "username1", "id", 7, "salary", 12880.68) userinfo) tmp;
	
-- union 数据类型
hive> select create_union(0, "zhansan", 19, 8000.88) uinfo;
Hive默认分隔符

字段之间:^A 用于分隔字段

元素之间: ^B 用于分隔 ARRAY、MAP、STRUCT 中的元素

key-value之间:^C Map中 key、value之间的分隔符

hive中没有定义专门的数据格式,可以由用户指定。

用户定义数据格式需要指定三个属性:

  1. 列分隔符:"\t"
  2. 行分隔符:"\n"
  3. 读取文件数据的方式

注意:

​ 记载数据过程中,hive不会对数据本身进行修改,只是将数据内容复制或移动到相应的HDFS目录

​ Hive数据导出到本地时,系统默认分隔符是是A、B、^C 这些特殊字符,使用cat 或者 vim 并不会看到,但可以使用cat -A file.dat

DDL(data definition language)命令

建表语句

-- 创建数据库。添加备注,指定数据库在存放位置 
hive (default)> create database if not exists mydb2 
comment 'this is mydb2' location '/user/hive/mydb2.db';

查看数据库

-- 查看所有数据库 
show databases;

-- 查看数据库信息
desc database mydb2; 
desc database extended mydb2; 
describe database extended mydb2;

使用数据库

use mydb;

删除数据库

-- 删除一个空数据库 
drop database databasename;

-- 如果数据库不为空,使用 cascade 强制删除 
drop database databasename cascade;
建表语法
create [external] table [IF NOT EXISTS] table_name 
[(colName colType [comment 'comment'], ...)] 
[comment table_comment] 
[partition by (colName colType [comment col_comment], ...)] [clustered BY (colName, colName, ...) 
[sorted by (col_name [ASC|DESC], ...)] into num_buckets buckets] 
[row format row_format] [stored as file_format] 
[LOCATION hdfs_path] 
[TBLPROPERTIES (property_name=property_value, .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值