hive 如何判断字段名是否存在,或者字段总数? 40C

hive中如何判断字段名是否存在,或者字段总数为多少?

如果不能回答,下面的问题场景有好的解决方案也可以采纳

问题场景:
目前问题是这样的:公司hive库需要新增一个字段,但是数据部的同事为了保证hive代码在公司新增数据字段后仍能正常运行不会报错,需要自动判断是否添加了新字段(或者是判断字段数目为x or x+1),这样就能用if执行2个逻辑。

为什么我们不直接创建一个新表呢? 因为要保证数据连续性,不能在某天中断了(跑一次全量表数据公司服务器要跑一个月,历史数据非常庞大)

3个回答

sjtu448651346
sjtu448651346 不太行,我需要判断的是select a(a是否存在),而不是a记录包不包含b
9 个月之前 回复

hive的元数据存放的资料库会有你所要的信息,常用的应该是mysql数据库。

weixin_42080504
have_power 回复sjtu448651346: 你写个sql脚本判断不就行了吗,手动变自动不简单嘛...
9 个月之前 回复
sjtu448651346
sjtu448651346 需要hive脚本自动判断,不是手动
9 个月之前 回复

在hive sql 里面好像直接判断字段个数有点困难,
原表为tmp1,
可以事先创建一个相同表建构的数据
create table tmp2 like tmp1;
然后取一条数据出来union all

create table tmp3 as
select * from tmp1 limit 1
union all
select * from tmp2
如何报错,就说明表结构有变化。

当然,union all 那步要加校验,进行异常处理

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问