蜂巢-不保留空字符串

时间:2019-02-17 21:51:10

标签: string hive null is-empty

当我在tableA中插入包含空字符串的数据,然后执行

select * from tableA;

我看到空字符串被NULL值代替。

如何保留空字符串值而不是NULL值?

2 个答案:

答案 0 :(得分:0)

您应该获得空字符串而不是null。

hive> create temporary table t1 as select '' as c1, 
' ' as c2; --- ' ' space
Time taken: 0.145 seconds, Fetched: 1 row(s)
hive> select concat('|',c1, '|', c2, '|') from t1;
OK
|| |
Time taken: 0.319 seconds, Fetched: 1 row(s)

hive> insert into t1 values ('  ', '   '); -- multiple spaces
Time taken: 13.6 seconds
hive> select concat('|',c1, '|', c2, '|') from t1;
OK
|| |
|  |   |
Time taken: 0.136 seconds, Fetched: 2 row(s)

答案 1 :(得分:0)

刚发现它...原因是当在期望字符串的字段中用空值完成插入时,则保留空值,但是当该字段期望字符串以外的其他值时,例如字段期望接收一个整数,然后将空值插入为NULL值。