hive怎么确定新增字段的位置

hive怎么确定新增字段的位置,第1张

方法一:利用编辑器直接插入控制字符,以Vi为例。进入Vi:Shell代码收藏代码$visupply-20110101.txt在Vi命令模式下,键入:setlist,设置控制字符可见,成功后Vi会立即显示一个行结束标志$。填入Hive表中需要的每列数据

基本语法:

例:将表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目录下的所有文件内容

内表转外表

外表转内表


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11828178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存