现在的位置: 首页 > 综合 > 正文

hive null

2014年02月18日 ⁄ 综合 ⁄ 共 1026字 ⁄ 字号 评论关闭

hive中NULL默认是以'\N'表示的
示例:
建表:
hive> create table null_test_1(id INT, name STRING) 
    > ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

OK
Time taken: 0.275 seconds
插入数据:
$ cat /home/work/data/null_test.txt 
1       2
1       \N
1       3
hive> load data local inpath '/home/work/data/null_test.txt' into  table null_test_1;
Copying data from file:/home/work/data/null_test.txt
Copying file: file:/home/work/data/null_test.txt
Loading data to table default.null_test_1
OK
Time taken: 0.384 seconds
查看数据:
hive> select * from null_test_1 ;
OK
1       2
1       NULL
1       3
hive> select * from null_test_1 where name is not null;
Total MapReduce jobs = 1
......
OK
1       2
1       3
Time taken: 32.729 seconds

可以通过ALTER TABLE table_name SET SERDEPROPERTIES('serialization.null.format' = '');修改空值描述符
示例:
hive> ALTER TABLE null_test_1 SET SERDEPROPERTIES('serialization.null.format' = '');
OK
Time taken: 0.137 seconds
hive> select * from null_test_1 where name is not null;
Total MapReduce jobs = 1
......
OK
1       2
1       \N
1       3
Time taken: 21.754 seconds

hive中分区字段如果为NULL需注意
使用dynamic partition,如果分区字段为NULL,数据会放到一个特殊的分区,这个分区由参数“hive.exec.default.partition.name”控制,默认为“__HIVE_DEFAULT_PARTITION__”。

抱歉!评论已关闭.