Hive 从配置单元表中删除NULL

Hive 从配置单元表中删除NULL,hive,hiveql,Hive,Hiveql,我有一个表,其中某些列中有“NULL”值,我的下游程序不接受NULL值,我可以编写一个switch case语句,用一个空的“”替换NULL,但我正在寻找一种更有效的方法,比如更改表属性以显示blank而不是NULL 您可以使用此查询将基础数据中的“NULL”解释为空字符串 SELECT TRANSLATE(column1,'NULL','') FROM MyTable; 插图: -- This is the Hive table > desc hive_tbl; col_name

我有一个表,其中某些列中有“NULL”值,我的下游程序不接受NULL值,我可以编写一个switch case语句,用一个空的“”替换NULL,但我正在寻找一种更有效的方法,比如更改表属性以显示blank而不是NULL

您可以使用此查询将基础数据中的“NULL”解释为空字符串

SELECT TRANSLATE(column1,'NULL','') FROM MyTable;
插图:

-- This is the Hive table

> desc hive_tbl;

col_name                data_type
h1                      string
h2                      string
h3                      string
h4                      string

-- This is the query that interprets h2 having 'NULL' as another character. 
-- In this case, 'X' is used instead of '' so that it prints in the display.

> SELECT h1, h2, h3, h4, TRANSLATE(h2,'NULL','X') h2_updated FROM hive_tbl;

h1  h2      h3  h4                                                h2_updated
1   foo     100 entry-foo                                         foo
2   NULL    200 The data is absent for second column              NULL
3   NULL    300 The value in second column is the string NULL     X

您可以让配置单元将null表示为空字符串。它的工作原理取决于表的定义。我该如何做?我尝试了alter table tab_name set tblproperties('serialization.null.format'=FALSE)
tblproperties('serialization.null.format'='')
这是一个空字符串。