当我在tablea中插入包含一个空字符串的数据时,然后执行
select * from tableA;
我看到空字符串被零值代替。
如何保持空字符串值而不是保持空值?
您应该获得空字符串而不是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)
刚刚发现了...原因是,当插入插入在一个期望字符串的字段中完成插入时,然后保留空值,但是当字段期望其他东西时例如,如果字段期望接收整数,则将空值插入为空值。