null - 在 Hive 中处理 NULL 值

标签 null hive

我正在尝试从另一个表(表 1)在 Hive 中创建一个表(表 2)。我试图排除某些具有 NULL 值的行并尝试了以下条件。

    insert overwrite table table2 partition (date = '2013-06-01')
    select column1, column 2....
    from table1
    where column1 is not NULL or column1 <> '';

但是,当我使用新表尝试以下查询时,我得到 300 多行带有 NULL 值的行:
    select count(*) from table2 where column1 is NULL;

有人可以指出导致这些 NULL 值的原因吗?

谢谢你。

拉维

最佳答案

首先——我不认为 column1 is not NULL or column1 <> ''很有道理。也许你想写 column1 is not NULL and column1 <> '' ( AND 而不是 OR )?

其次——由于 Hive 对表定义的“读取模式”方法,无效值将被转换为 NULL当你阅读它们时。因此,例如,如果 table1.column1类型为 STRINGtable2.column1类型为 INT ,那么我不认为 table1.column1 IS NOT NULL足以保证table2.column1 IS NOT NULL . (不过,我不确定这一点。)

关于null - 在 Hive 中处理 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18432925/

相关文章:

hadoop - hive 表中 count(*) 的错误结果

Apache Kylin - 立方体构建第一步的错误输出

mysql - 为什么 MySQL 将 null 更改为零?

c - 如何将指向 C(而非 C++)中的结构的指针数组设为空

Go:XORKeyStream():运行时错误:无效的内存地址或零指针取消引用

hadoop - Hive 查询按 id 分组

hadoop - 如何查看hadoop数据目录结构?

hive - 在配置单元中将日期从字符串更改为日期类型

mysql - 主键列不允许空值

Python MySQL插入NULL(None)值报错