hive之表属性操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive之表属性操作相关的知识,希望对你有一定的参考价值。
参考技术A基本语法:
例:将表table_change_new中的字段name移到addr字段后面【name和addr都是string类型】
注:移动列位置的坑
上面的这种位置转移涉及到类型强制转换问题,
比如int不能被转换成string
尝试将sex字段【int类型】移动到addr后面,addr后面现在是name字段【string类型】
报当前列sex类型和现有位置的列name不相容的错误
例:将name放到第一列,现在name在第二列
例:创建表city,字段分隔符为#
将一份以tab作为字段分隔符的数据导入city,数据都被作为第一个字段的值
将字段分隔符改为tab
再次查看city表,每个字段值都被正常显示
例:创建分区表city,字段分隔符为#
将一份以tab作为字段分隔符的数据导入city,数据都被作为第一个字段的值, 分区表导入数据时要指定分区
查看此时的city表,数据都被赋给第一个字段
将字段分隔符改为tab
查看此时的字段分隔符参数, 发现还是#
修改分区表序列参数的坑:
注:如果修改serdeproperties参数的时候不加分区,那么字段分隔符参数field.delim会被改为\\t,但是还是没法把该分区的数据分隔开
分区等于20191010的数据可以正常显示
再导入新的数据,设分区等于20191110
发现新分区的数据无法按照分隔符tab显示
再导入新的数据,分区还是等于20191010
此时的数据还是无法显示
再导入新数据,设分区等于20191110
基本语法:
例:将内表city的location修改到/home/yy
此时/home/yy目录下有两个文件
此时city显示的/home/yy目录下的所有文件内容
内表转外表
外表转内表
以上是关于hive之表属性操作的主要内容,如果未能解决你的问题,请参考以下文章