基本数据类型
Hive 的数据类型分为基本数据类型和复杂数据类型
加粗的是常用数据类型
BOOLEAN出现ture和false外的其他值会变成NULL值
没有number,decimal类似number
如果输入的数据不符合数据类型, 映射时会变成NULL, 但是数据本身并没有被修改
创建表
创建表的本质其实就是在对应的数据库目录下面创建一个子目录,目录名为表名。数据文件就存在这个目录下。
使用语法1时需注意当前所在的数据库,判断是否需要切换数据库
工作中建议使用语法2
建表时未指定分隔符(语法1和语法2),Hive会使用默认的分隔符,列和列之间是\001,行与行之间是\n
row format delimited 开启分隔符格式化
分隔符可以自定义,比如逗号,\t制表符, 但是只能有单个分隔符
默认是以文本格式储存,所以 stored as textfile可写可不写
查看表
如果建表时没有指定分隔符,使用desc formatted tableName查看表结构时会出现SerDe Library行,
"SerDe Library" 行指的是用于序列化(Serializer)和反序列化(Deserializer)数据的库。在 Hive 中,SerDe 库负责将数据从一种格式转换为另一种格式,以便在查询和存储时使用。
如果建表时指定分隔符,使用desc formatted tableName查看表结构时会展示分隔符
删除表
修改表名
colType是数据类型;
修改列
- 修改列的位置 : 注意, 2 .x 版本后,必须是相同类型进行移动位置。
alter table tableName change column colName colName colType after colName1;
alter table t1 change column english english int after chinese;
alter table tableName change column colName colName colType first ;
将字段放在首位,前提是要移动的字段和第一个字段的数据类型要保持一致;
注意:修改,增加,删除字段等只是改变字段和数据的映射关系,表内的数据并没有改变