hive> show databases;
OK
default
Time taken: 1.867 seconds, Fetched: 1 row(s)
hive> use default;
OK
Time taken: 0.067 seconds
hive> show tables;
OK
student
Time taken: 0.072 seconds, Fetched: 1 row(s)
hive> drop table student;
OK
Time taken: 1.272 seconds
hive> create table student(id int,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
OK
Time taken: 0.703 seconds
hive> load data local inpath '/opt/module/datas/student.txt' into table student;
Loading data to table default.student
Table default.student stats: [numFiles=1, totalSize=37]
OK
Time taken: 1.24 seconds
hive> select * from student;
OK
1001 zhangsan
1002 lisi
1003 wangwu
Time taken: 0.512 seconds, Fetched: 3 row(s)
load data local inpath ‘/opt/module/datas/student.txt’ into table student;
这句指令就是将虚拟机中一个文件夹下的数据加载到hive数据表中,但是这里出现了一个错误,我在查询数据时发现,所有的字段都是NULL。反复试了几次都是这样。
但是自己插入数据都可以正常显示,就是本地数据加载进去的数据偏偏显示为NULL。
后来我仔细想了一下加载命令本身,这里是根据数据里每一行中的 ‘\t’ 来区分字段的,而我数据里用的是空格,而不是制表符。
所以当我将数据里的单个空格改为tab缩进之后,重新加载就正常显示数据了。