【问题标题】:Removing NULL from Hive table从 Hive 表中删除 NULL
【发布时间】:2018-05-01 03:00:03
【问题描述】:

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

【问题讨论】:

  • 您可以让 Hive 将空值表示为空字符串。它的工作方式取决于您的表是如何定义的。
  • 我该怎么做?我试过 alter table tab_name set tblproperties('serialization.null.format'=FALSE)
  • TBLPROPERTIES('serialization.null.format'='') 后面是一个空字符串。

标签: hive hiveql


【解决方案1】:

您可以使用此查询将基础数据中的“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

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    相关资源
    最近更新 更多