3

我在 hive 中有一个 double 类型的列,但是当我这样做时,有些行是 NULL:

select columnA from table;

现在,如果我运行以下命令,两个查询都会得到 0:

select count(*) from table where columnA = "NULL";
select count(*) from table where columnA = NULL;

如何计算表中为 NULL 的行?

4

2 回答 2

6

正确的查询是:

select count(*) from table where columnA is null;
于 2013-08-08T15:39:41.960 回答
5

在 Hive 中,count(*) 计算所有行,count(columnA) 仅计算 columnA 为非 NULL 的行。如果您想做多列,您可以将查询编写为:

select count(*)-count(columnA), count(*)-count(columnB) from table;

并获取每列中空值的数量。 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

于 2015-01-20T19:14:53.107 回答