hive - 计算配置单元中没有空值的行数

标签 hive

我有一个查询如何计算表中不存在空值的行数。

假设,下面的数据集有 8 列 h1,h2,h3......h8。如果所有列都为 NULL,则计数为 0。如果至少有一个列具有值,则计数为 1。

h1   h2  h3  h4  h5  h6  h7  h8

U   U   NULL    U   Y   NULL    Y   X

U   NULL    U   U   Y   Y   X   X

U   U   U   NULL    U   NULL    Y   NULL

NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL

X   V   U   U   Y   NULL    Z   X

Y   X   NULL        X   Y   Z   U

X   NULL    U   NULL    NULL    U   Z   Y

NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL

对于上述数据集,答案将是 6。因为只有两行(4 和 6)的所有列都为 NULL。

请在 hive 中建议命令以获取结果。

最佳答案

您可以结合使用 CASECOALESCESUM

SELECT SUM (
  CASE
    WHEN COALESCE (h1, h2, h3, h4, h5, h6, h7, h8) IS NOT NULL
    THEN 1
    ELSE 0
  END)
FROM yourtable;

关于hive - 计算配置单元中没有空值的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48315742/

相关文章:

hadoop - 从文本文件将多行xml数据加载到Hive表中

java - 解析嵌套 avro 文件

使用加载数据将 csv 文件传输到 hive 表 - 如何格式化 csv 中的日期以供 hive 表接受

hadoop - 在表中看不到Hadoop Hive数据/在hdfs位置显示

apache - 我正在使用 Hadoop 2.7.2 安装 Hive 2.0.0

hadoop - Hive静态分区问题

json - 解析 JSON 数组并加载到配置单元表中

sql - 我想在我现有的配置单元表中添加一个额外的列,以便我可以获得当天的当前时间戳

hadoop - 避免以编程方式使用创建的上下文启动 HiveThriftServer2

sql - 在 Hive 0.13 中读取 CSV 文件,数据中也不带引号和逗号