Hive Json 建表语句太长出错【修改Hive 元数据表结构】

本文介绍在Hadoop集群中使用Hive处理长Json数据时遇到的问题及解决方案。因Json内容过长,创建外部表时,字段类型超出默认长度限制,导致无法正常操作表。通过调整Hive元数据库中COLUMNS_V2的TYPE_NAME字段长度,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在Hadoop集群中要添加一些Hive表来解析Json。

因为Json的内容太长,选择外部表创建语句格式如下:

create external table if not exists TABLENAME

( 

   字段A string,

   字段B string,

   字段C struct<

              字段D:string,字段E:struct<。。。。省略。。。> 

              >

)。。。省略

建表成功后,对建好的表进行操作时,在hive shell中发现没有办法操作,无论是desc还是drop 都报错,提示在字段末尾意外中断了。

本来以为是JsonSerDe调用函数时,字段C的TypeString字符串的长度超出了String的长度限制,这样就没办法了。

后来找到了Hive 元数据库的hive.COLUMNS_V2的TYPE_NAME长度为varchar(4000)导致了字符串中断。

修正方法:

 alter table COLUMNS_V2 modify column TYPE_NAME varchar(20000);

更改了最大长度,表可以正常使用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值