Hive 在配置单元中处理char(1)和varcar(2)的null

Hive 在配置单元中处理char(1)和varcar(2)的null,hive,null,hiveql,Hive,Null,Hiveql,我正在读取配置单元中的一个平面文件,文件中有空值,如下所示 a|b|null|null|d 当我在上面用下面的数据类型创建表时 a char(1),b char(1),c char(1),varchar2(2),char(1) 表中的值如下所示 a,b,n,nu,d 我可以这样做的一种方法是将数据类型设置为varchar2(4),并在null处添加check。 但是有没有其他方法可以做到这一点。SerDe将“null”字符串视为正常值,值“a”和“null”之间没有区别 尝试将'seria

我正在读取配置单元中的一个平面文件,文件中有空值,如下所示

a|b|null|null|d
当我在上面用下面的数据类型创建表时

a char(1),b char(1),c char(1),varchar2(2),char(1)
表中的值如下所示

a,b,n,nu,d
我可以这样做的一种方法是将数据类型设置为varchar2(4),并在null处添加check。
但是有没有其他方法可以做到这一点。

SerDe将“null”字符串视为正常值,值“a”和“null”之间没有区别

尝试将
'serialization.null.format'='null'
属性添加到表定义中:

ALTER TABLE mytable SET tblproperties('serialization.null.format'='null');
另一种方法是使用字符串数据类型,case语句是select:

select case when col = 'null' then null end as col
       ...