我在 hive 中有一个 double 类型的列,但是当我这样做时,有些行是 NULL:
select columnA from table;
现在,如果我运行以下命令,两个查询都会得到 0:
select count(*) from table where columnA = "NULL";
select count(*) from table where columnA = NULL;
如何计算表中为 NULL 的行?
正确的查询是:
select count(*) from table where columnA is null;
在 Hive 中,count(*) 计算所有行,count(columnA) 仅计算 columnA 为非 NULL 的行。如果您想做多列,您可以将查询编写为:
select count(*)-count(columnA), count(*)-count(columnB) from table;
并获取每列中空值的数量。 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF