这里我们针对在HIVE中遇到的NULL和空字符串问题进行简单探讨,避免踩坑!!!
简单探索
首先新建一张测试表test_01,用作后续测试
CREATE TABLE IF NOT EXISTS test_01
(
id
INT, name
STRING,age
INT, score
FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’ STORED AS TEXTFILE;
新增简单的几条测试数据,具体如下
insert overwrite table test_01
select NULL,NULL,10,95
union all select 2 ,’’,10,95
union all select 3 ,‘Lucy’,15,NULL
union all select 4,‘Jack’,15,100;
查看新增数据
hive (tmp)> select * from test_01;
OK
NULL NULL 10 95.0
2 10 95.0
3 Lucy 15 NULL
4 Jack 15 100.0
底层HDFS文件默认存储格式
[root@nd2 wh]# hadoop fs -cat /user/hive/warehouse/tmp.db/test_01/000000_0
\N,\N,10,95.0
2,10,95.0
3,Lucy,15,\N
4,Jack,15,100.0
得出结论:
默认情况下,STRING类型的数据如果为" “,底层HDFS文件默认存储则是” "