Hive 基本操作 DDL
-
- 要求:字段的类型和顺序要和结构化文件保持一致 hive会尝试转换 不保证转换成功 如果成功就显示 如果失败就显示null
- hive除了支持sql类型 还支持java类型 大小写不敏感
- hive除了支持基本类型 还支持复合类型(map array) 针对复合类型要跟分隔符指定有关
-
hive读取数据映射的机制
- 首先调用Inputformat进行读取数据,默认TextInputFormat(一行一行读)
- 然后调用SerDe类进行数据切割,默认LazySimpleSerDe根据指定分隔符进行数据切割
分割符指定:
语法格式:
ROW FORMAT DELIMITED | SERDE
ROW FORMAT : 表明开始指定分隔符
DELIMITED : 使用内置默认的类来进行数据切割 默认LazySimpleSerDe
SERDE :表明使用其他的类来进行数据切割
x
1
ROW FORMAT DELIMITED | SERDE
2
3
ROW FORMAT : 表明开始指定分隔符
4
DELIMITED : 使用内置默认的类来进行数据切割 默认LazySimpleSerDe
5
SERDE :表明使用其他的类来进行数据切割
[FIELDS TERMINATED BY char] 指定字段之间的分隔符
[COLLECTION ITEMS TERMINATED BY char] 指定集合元素之间分隔符
[MAP KEYS TERMINATED BY char] 指定map kv之间的分隔符
[LINES TERMINATED BY char] | 指定换行符\r\n
1
[FIELDS TERMINATED BY char] 指定字段之间的分隔符
2
[COLLECTION ITEMS TERMINATED BY char] 指定集合元素之间分隔符
3
[MAP KEYS TERMINATED BY char] 指定map kv之间的分隔符
4
[LINES TERMINATED BY char] | 指定换行符\r\n
日常命令:
show tables;
显示当前数据库所有表
show databases |schemas;
显示所有数据库
show partitions table_name;
显示表分区信息,不是分区表执行报错
desc formatted table_name;
查看表信息(格式化美观)
x
1
show tables;
2
显示当前数据库所有表
3
show databases |schemas;
4
显示所有数据库
5
show partitions table_name;
6
显示表分区信息,不是分区表执行报错
7
desc formatted table_name;
8
查看表信息(格式化美观)
hive错误的分类:
Error while compiling statement 编译期间的错误 sql语法错误
Error while processing statement 执行期间的错误 逻辑思维的错误 sql语法层面没问题
1
1
Error while compiling statement 编译期间的错误 sql语法错误
2
Error while processing statement 执行期间的错误 逻辑思维的错误 sql语法层面没问题
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。