Hive 配置单元将字符串列中的空字符串转换为空字符串

Hive 配置单元将字符串列中的空字符串转换为空字符串,hive,tbl-properties,Hive,Tbl Properties,配置单元将字符串列中的空字符串转换为空字符串。原因是什么 根据我们的要求,我们需要在string列中看到Null,而不是空字符串,否则Null对这些列不起作用。 为了解决这个问题,我们在表中设置了以下属性: TBLPROPERTIES('serialization.null.format'='') 但我们仍然看到空字符串而不是NULL,甚至SHOW TBLPROPERTIES也没有在结果中显示此属性,因此我不确定是否设置了此属性 我试图在DDL本身中设置这个属性,甚至我也尝试了 Alter T

配置单元将字符串列中的空字符串转换为空字符串。原因是什么

根据我们的要求,我们需要在string列中看到Null,而不是空字符串,否则Null对这些列不起作用。 为了解决这个问题,我们在表中设置了以下属性:

TBLPROPERTIES('serialization.null.format'='')
但我们仍然看到空字符串而不是
NULL
,甚至
SHOW TBLPROPERTIES
也没有在结果中显示此属性,因此我不确定是否设置了此属性

我试图在DDL本身中设置这个属性,甚至我也尝试了

Alter Table <TableName> Set TBLPROPERTIES ('serialization.null.format' = '');
Alter Table Set TBLPROPERTYS('serialization.null.format'='');

如果需要,创建另一个表,并将此表的值存储到此格式的表中。我提到-1作为例子,你可以选择任何东西

在select查询中

select
case when <col> is null then -1 else <col> end as <col>
from
table
选择
如果为空,则为-1,否则结束为
从…起
桌子
如何移动数据? 如果您使用的是sqoop,那么您可以尝试传递以下参数

    --input-null-string '\\N' 
    --input-null-non-string '\\N'

感谢Ganesh,我的问题是,经过一些处理后,我正在将数据从Oracle加载到Hive表。因此,配置单元中的任何Null值都不会显示为Null。配置单元将空值视为空字符串。所以我想检查一下,当我在配置单元中选择数据时,它会显示Null而不是空字符串。我已尝试('serialization.null.format'='');如果在配置单元中使用isnull(),它会将Null视为Null。请检查您的oracle源代码是否将Null作为Null或空字符串返回。在oracle中,当我在配置单元表中插入该数据(数据类型-字符串)时,它是Null。它正在向我显示空字符串NOTNULL