即使在 Hive 中使用合并后也能看到 null



即使在使用之后,我也会在目标表中获得null值

coalesce(x.coulmn, 0) 

同时加载数据。列是smallint数据类型。如果有人遇到过这种问题,请告诉我。

coalesce(cntdim.epsd_ind, 0) as epsd_ind 

这应该返回0或1,但我在目标中得到了null。

当输入数据无法转换为目标数据类型时,也遇到了同样的问题。当无法转换时,配置单元会在插入过程中将其静默转换为NULL。为了避免这种情况,使用cast((应用显式转换:

coalesce(cast(x.coulmn as smallint), 0) 

在这种情况下,如果值不能转换为smallint,则强制转换将返回NULLcoalesce将返回0。或者使用其他方法确保插入的数据类型完全兼容或相同。

如果没有cast(),如果x.column不为null并且无法转换为smallint,则coalesce将返回值,并且值将作为null插入:

coalesce(x.coulmn, 0)

在DATE列中插入字符串时也会出现类似的问题。如果字符串的格式不正确,比如'2017-01-010000',它将毫无例外地转换为NULL。有趣的是,在单元1.2.x中插入intbigint被截断为适合int,而不是转换为null。

相关内容

  • 没有找到相关文章

最新更新