Hive修改Parquet存储的表字段类型

本文探讨了Hive数据表在使用Parquet存储时,字段类型修改所带来的影响。相较于纯文本,Parquet虽有计算高效和压缩等优势,但类型修改可能导致查询异常。在Parquet表中,Hive的类型转换不会改变数据文件中的实际类型,从而在查询时引发错误。解决方法是将Hive表类型恢复到原始类型,以避免数据损坏。
摘要由CSDN通过智能技术生成

Hive数据表的存储支持多种方式,纯文本和Parque其中的两种。

纯文本的优势在于简单,可读,缺点在于无压缩,效率;Parque的优势在于计算高效,可压缩的列存储模式,缺点在于比纯文本多了一层定义带来的复杂性。

Hive数据表的字段修改,可以通过

alter table name change column column_name new_column_name type;

进行重命名和(或)类型修改。

文本文件由于其天然的简单性,数据中不含有类型信息,完全为数据本身,类型信息完全由Hive进行维护,所以许多类型转换操作在以纯文本存储的表中是可以按预期完成的。

比如如下两个类型转换

string->int
double->int

在文本表中都是可以实现的,即便是string类型的数据实际上备份数值,也最多是后续查询出来的数据为null

上述“符合预期”的结果在Parquet存储的数据表中却是无法完成的。

同样的类型转化,Hive层面是可以完成操作的,但是后续查询数据的时候,除非发生转换类型的列所有数据都是null,否则得到将不是预期的结果,而是异常的抛出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值