Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hive 看到空';即使在蜂箱中使用了聚结剂,也会产生过敏反应_Hive_Null_Hiveql - Fatal编程技术网

Hive 看到空';即使在蜂箱中使用了聚结剂,也会产生过敏反应

Hive 看到空';即使在蜂箱中使用了聚结剂,也会产生过敏反应,hive,null,hiveql,Hive,Null,Hiveql,即使在使用 coalesce(x.coulmn, 0) 在加载数据时。列是smallint数据类型。请告诉我是否有人遇到过此类问题 coalesce(cntdim.epsd_ind, 0) as epsd_ind 这应该返回0或1,但我在目标中变为null。当输入数据无法转换为目标数据类型时,我遇到了相同的问题。 无法转换时,配置单元会在插入过程中将其静默转换为NULL。要避免这种情况,请使用cast()应用显式转换: 在这种情况下,如果值不能转换为smallint,则cast将返回NU

即使在使用

coalesce(x.coulmn, 0) 
在加载数据时。列是
smallint
数据类型。请告诉我是否有人遇到过此类问题

coalesce(cntdim.epsd_ind, 0) as epsd_ind 

这应该返回0或1,但我在目标中变为null。

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

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

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

coalesce(x.coulmn, 0)

在将字符串插入日期列时,也可以观察到类似的问题。如果字符串格式错误,例如
'2017-01-010000'
它将毫无例外地转换为NULL。有趣的是,
bigint
被插入到hive1.2.x中的
int
中,被截断以适合int,未转换为null。

编辑问题添加一些示例数据和所需结果将很有帮助。hey@leftjoin感谢您的输入,但源和目标在我的数据库中是相同的数据类型case@2strange:这与您在两个表中定义的数据类型无关…如果您的实际数据不是预期的类型(本例中为smallint),然后蜂巢会显示为空。为了避免这种情况,您可以使用上述建议
coalesce(x.coulmn, 0)