Hive:bigint和string进行join出现匹配错误问题

转载链接

在hive中,两个表进行join,on条件两表的字段含义一致(都是整数),但数据类型不一致:string和bigint。join后发现如果数值过大则匹配的记录会出现问题:一条记录会匹配出多条记录(explain可以发现都转换为double)

如:190000000002778025,就会错误的匹配上*8023 ,*8025

a)原因:Java中精度只有15至16位,当数据超过精度就会不准------也就会出现超过精度的记录join上许多不一致的记录。

bigint和string比较时会隐式地都转换成double,java中double的精度只有15-16位(double可以精确的表示小于2^52=4503599627370496的数字)。当数字超过精度的时候就会比较不准确,出现上面描述的现象。

b)解决方法:建议将string转换为bigint~ cast(c as bigint) 后再进行比较。

float 和 double 的区别:double更占内容,在满足需求的基础上,使用float更合理。

相关推荐
莫叫石榴姐1 小时前
数据开发需求工时如何评估?
大数据·数据仓库·人工智能·数据分析·产品运营
xiaomici1 天前
SAC - Addin
数据仓库
edisao1 天前
第三章 合规的自愿
jvm·数据仓库·python·神经网络·决策树·编辑器·动态规划
Aloudata1 天前
NoETL 指标平台与现有数据中台、治理体系的融合之道
数据仓库·数据分析·自动化·etl·noetl
2501_927283582 天前
你的仓库,还停留在“人找货”的时代吗?
运维·数据仓库·人工智能·自动化·wms
莽撞的大地瓜2 天前
新浪舆情通秒级预警筑牢舆情应急第一防线
大数据·数据库·数据仓库·数据分析
旺仔Sec2 天前
手把手教你从零搭建 Hive 2.3.6 + MySQL 元数据存储(含视频教程)
hive·hadoop·mysql
人道领域3 天前
SSM框架从入门到入土(SpringMVC入门开发全流程解析)
数据仓库·hive·hadoop
Mr泓3 天前
数据仓库建设-(数仓分层篇)
大数据·数据仓库·hive
火龙谷3 天前
【hadoop】Hive数据仓库安装部署
数据仓库·hive·hadoop