AKC*_*AKC 2 hadoop hive hiveql
我对以下语句的理解是,如果在蜂巢列中插入空白或空字符串,则将其视为null。
TBLPROPERTIES('serialization.null.format'=''
Run Code Online (Sandbox Code Playgroud)
为了测试功能,我创建了一个表并在字段3中插入了“”。当我在field3上查询空值时,没有符合该条件的行。
我对将空白字符串设置为null的理解正确吗?
CREATE TABLE CDR
(
field1 string,
field2 string,
field3 string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
**TBLPROPERTIES('serialization.null.format'='');**
insert overwrite table emmtest.cdr select **field1,field2,''** from emmtest.cdr_non_orc;
select * from emmtest.cdr where **field3 is null;**
Run Code Online (Sandbox Code Playgroud)
最后一条语句未返回任何行。但我期望所有行都将返回,因为field3中有空白字符串。
TBLPROPERTIES('serialization.null.format'='') 表示以下内容:
您正在做其他事情-
您正在向查询表中插入一个空字符串。
它按“原样”处理-空字符串。
重击
hdfs dfs -mkdir /user/hive/warehouse/mytable
echo Hello,,World | hdfs dfs -put - /user/hive/warehouse/mytable/data.txt
Run Code Online (Sandbox Code Playgroud)
蜂巢
create table mytable (s1 string,s2 string,s3 string)
row format delimited
fields terminated by ','
;
Run Code Online (Sandbox Code Playgroud)
hive> select * from mytable;
OK
s1 s2 s3
Hello World
Run Code Online (Sandbox Code Playgroud)
hive> alter table mytable set tblproperties ('serialization.null.format'='');
OK
Run Code Online (Sandbox Code Playgroud)
hive> select * from mytable;
OK
s1 s2 s3
Hello NULL World
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25710 次 |
| 最近记录: |