hive——创建表不支持新增字段问题
来源:互联网 发布:怎么安装office软件 编辑:程序博客网 时间:2024/06/04 18:07
创建hive表后,可能会遇到需要增加字段的情况,我们可能会想当然的像mysql或其他数据库那样,直接添加一个字段。
但对于hive,直接添加的字段可能并不能使用,比如可能会在添加字段后,在插入数据时,会出现类似如下的错误:
Error: java.io.IOException: java.lang.ArrayIndexOutOfBoundsException: 9 at org.apache.hadoop.hive.io.HiveIOExceptionHandlerChain.handleRecordReaderCreationException(HiveIOExceptionHandlerChain.java:97) at org.apache.hadoop.hive.io.HiveIOExceptionHandlerUtil.handleRecordReaderCreationException(HiveIOExceptionHandlerUtil.java:57) at org.apache.hadoop.hive.ql.io.HiveInputFormat.getRecordReader(HiveInputFormat.java:247) at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.<init>(MapTask.java:169) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:429) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)Caused by: java.lang.ArrayIndexOutOfBoundsException: 9 at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl$StructTreeReader.<init>(RecordReaderImpl.java:1864) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.createTreeReader(RecordReaderImpl.java:2263) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.access$000(RecordReaderImpl.java:77) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl$StructTreeReader.<init>(RecordReaderImpl.java:1865) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.createTreeReader(RecordReaderImpl.java:2263) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.<init>(RecordReaderImpl.java:283) at org.apache.hadoop.hive.ql.io.orc.ReaderImpl.rowsOptions(ReaderImpl.java:492) at org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger$ReaderPair.<init>(OrcRawRecordMerger.java:181) at org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger.<init>(OrcRawRecordMerger.java:460) at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getReader(OrcInputFormat.java:1109) at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getRecordReader(OrcInputFormat.java:1007) at org.apache.hadoop.hive.ql.io.HiveInputFormat.getRecordReader(HiveInputFormat.java:245) ... 8 more当出现这种问题时,你可能会根本找不到问题所在,使用create table table1 like table这种方式把这张表的表结构创建另一张表,得到的新表却没有这种问题出现。
这种问题出现原因为hive中的表结构是不怎么支持字段添加的。
当然,出现这种情况时,你可能会使用replace语句来将表结构还原,不过,或许此时也不支持做还原操作了。若出现如下错误提示,就表明不能还原:
Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Replace columns is not supported for table default.fac_scan. SerDe may be incompatible
这个时候的操作只能是删除原表,再根据新结构重建新表。
这个为本人当前hive操作中遇到的坑,若有哪位大神有更好解决方案,希望能给予帮助,不胜感激。
0 0
- hive——创建表不支持新增字段问题
- [Hive]Hive分区表新增字段
- hive的表新增字段后,新增字段不能load数据
- hive内部分区表(ORC格式)新增字段后出现的问题
- HIVE分区表新增字段后新增字段值为空,需要带分区加字段
- 大表新增字段
- hive学习笔记——Hive表的创建
- Hive学习笔记 --- 用中文创建表名和字段
- Hive分区表新增字段为null的bug及解决方法
- hive中文字段乱码问题
- Hive创建表时使用Unicode字符作为字段分隔符(hive unicode character as delimiter)
- hive创建分区表问题
- hive创建分区表问题
- PI表中新增字段
- 表中新增一个字段
- hive分区表增加字段会导致新增字段无法显示值的BUG
- hive分区表增加字段新增字段值为空的bug
- hive分区表增加字段会导致新增字段无法显示值的BUG
- 经典eclipse安装java web插件
- CentOs6.4安装lnmp
- 链表的c语言实现以及根据linux内核中链表的实现过程
- QWidget属性解释
- centos7默认开机进入命令行界面
- hive——创建表不支持新增字段问题
- JAVA中异常的使用
- extjs store
- jsp application使用getInitParameter来获取web.xml中配置参数
- 真机调试 - 添加IOS设备
- jquery判断是否的几种方法
- iOS网络通信http之NSURLConnection
- linux 命令
- jQuery选择器总结