文章目录
- 1 Hive数据类型
- 1.1 基础数据类型
- 1.1 复杂数据类型
- 1 表操作
- 2 查询
- 2 数据导入
- 2.1 本地文件系统导入
- 2.2 从hdfs中导入数据到hive
1 Hive数据类型
1.1 基础数据类型
类型 | Java数据类型 | 描述 |
tinyint | byte | 8位有符号整型,-128~127 |
smallint | short | 16位有符号整型,-32768~32767 |
int | int | 32位有符号整型,-231 ~ 231 -1 |
bigint | long | 64位有符号整型, -263+1 ~ 2 63 -1 |
binary | 二进制数据类型,目前限制位8MB | |
float | float | 32位二进制浮点型 |
double | double | 64位二进制浮点型 |
decimal(percision,scale) | 10进制精确数字类型。percision:表示最多可以表示多少位数字,1<=percision<=38。scale:表示小数部分的位数,0<=scale<=38,如果不指定两个参数,则默认位decimal(10,0) | |
varchar(n) | 变长字符类型,n为长度,1~65535 | |
char(n) | 固定长度字符类型,n为长度,最大为255.长度不足则会填充空格,但空格不参与比较 | |
string | string | 字符串类型,目前长度为8MB |
date | 日期类型,格式为 yyyy-mm-dd 00:00:00.000~9999-12-31 23:59:59.999,精确到秒 | |
timestamp | ||
boolean | boolean | boolean类型,取值True、False |
1.1 复杂数据类型
类型 | 定义方法 | 构造方法 |
array | ||
map | ||
struct | ||
https://www.douyin.com/user/MS4wLjABAAAAC5NbA1JCeuUfq9xXyi9UkRPlxTXxli4XWux9vqF46D4zcl0vlbs_8dmajmgLwAuJ?is_full_screen=0&modal_id=7037696402289380645&vid=7037406499148238091 |
1 表操作
创建表
create table my_user(id int,name string,phone string) row format delimited fields terminated by '\t';
表重命名
alter table my_user rename to my_users;
正则匹配查找表
show tables '*user*';
查看表结构
desc my_user;
增加表字段
# 添加email
alter table my_user add columns (email string);
删除表
drop table my_users;
2 查询
2 数据导入
2.1 本地文件系统导入
首先,我们在本地文件系统创建测试内容
vim /home/charles/user.txt
1 charles 101
2 tom 102
3 jack 103
然后在hive终端执行
load data local inpath '/home/charles/user.txt' overwrite into table my_user;
查看导入的数据
hdfs dfs -cat /user/hive/warehouse/my_user/user.txt;
2.2 从hdfs中导入数据到hive
创建表
create table my_user_hdfs(id int,name string,phone string) row format delimited fields terminated by '\t';
导入数据
load data inpath '/user/hive/warehouse/my_user/user.txt' overwrite into table my_user_hdfs;
查看数据
hdfs dfs -cat /user/hive/warehouse/my_user_hdfs/user.txt
参考地址:
https://www.helloworld.net/p/1015206641