Hive校验结果中的源端数据和目的端数据显示为“0”或“-1”
问题描述
对Hive进行大数据校验,校验任务执行成功,查看校验结果,发现部分字段的“源端数据”和“目的端数据”显示为“0”或“-1”。
问题分析
出现该问题可能是因为数值超出了Hive支持的数值范围。
在数据处理中,如果遇到极大值或极小值,Hive可能无法以标准数值格式表示这些极端数值,而是将它们显示为 “Infinity”(表示无限大)或 “-Infinity”(表示无限小)。这些值并不是有效的数字,因此在进行数值转换或计算时,可能会引发异常。
在校验过程中,Hive和Spark对这些无法表示的数值有默认的处理方式:
- 当数值为 Infinity 或 -Infinity 时,会被默认处理并显示为 -1。
- 当数值为 NaN(Not a Number,非数字)时,会被默认处理并显示为 0。