Hive 万恶的下划线 -- load数据时指定的文件不要以下划线开头

简述:hive load数据时,文件的命名不要以_开头。

1.  先看下要导入的文件,\t 分割。
cat /tmp/_load.csv
1	aaa	ok
2	aaa	error
3	aaa	ok
4	bbb	ok
5	ccc	error
6	ccc	ok
7	ddd	error

2. 建表,指定分隔符(默认/u0001)
hive> create table tmp_wjk_having_test (id int,  type string, status string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ;
OK
Time taken: 2.938 seconds
hive> load data local inpath '/tmp/_load.csv' overwrite into table tmp_wjk_having_test;                                      
Copying data from file:/tmp/_load.csv
Copying file: file:/tmp/_load.csv
Loading data to table default.tmp_wjk_having_test
Moved to trash: hdfs://hd00:9000/user/hive/warehouse/tmp_wjk_having_test
OK
Time taken: 0.5 seconds

3. 蛋疼的时刻来了,select下吧
hive> select * from tmp_wjk_having_test;
OK
Time taken: 0.794 seconds

4.查询没数据,但是hdfs上是有数据的。各种核对都没发现问题。换了分隔符再试也是没数据。 
[work(0)@dm02 12:56:41 ~]$ hadoop fs -cat /user/hive/warehouse/tmp_wjk_having_test/_load.csv
1	aaa	ok
2	aaa	error
3	aaa	ok
4	bbb	ok
5	ccc	error
6	ccc	ok
7	ddd	error

5. 换个文件名 mv /tmp/_load.csv /tmp/load.csv, 再load下,天就亮了。
load data local inpath '/tmp/load.csv' overwrite into table tmp_wjk_having_test;
hive> select * from test_hive_having;                                                    
OK
1	aaa	ok
2	aaa	error
3	aaa	ok
4	bbb	ok
5	ccc	error
6	ccc	ok
7	ddd	error

转载于:https://my.oschina.net/wangjiankui/blog/155873

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值