当你想通过结构化文件映射到hive的内部表时,这篇文章也许可以帮到你。
目录
一、创建.txt文件
例如:user.txt,文件内容如下(英文逗号)
1,allen,18
2,tom,23
3,jerry,28
二、在hive下建表t_user
hive> create table t_user(id int,name string,age int)
row format delimited fields terminated by ',';
创建完成后使用 show tables 命令查看。
hive> show tables;
hive> show tables;
OK
dept
emp
student_ext
t_student
t_user
Time taken: 13.271 seconds, Fetched: 5 row(s)
三、映射文件
注意文件路径和表名需自己指定
hive (default)> load data local inpath '/export/data/hivedata/user.txt' into table t_user;
Loading data to table default.t_user
OK
Time taken: 1.353 seconds
四、查看表中数据
hive> select * from t_user;
hive> select * from t_user;
OK
1 allen 18
2 tom 23
3 jerry 28
Time taken: 4.89 seconds, Fetched: 3 row(s)
上述建表语句中,根据结构话文件user.txt的具体内容及信息创建了具体有id、name、age字段的内部表t_user,同时使用ROW FORMAT选项制定了映射文件的分隔符为“,”。
hive.metastore.warehouse.dir是在HIVE_HOME/conf/hive-site.xml中配置的,如果没有配置,默认为/user/hive/warehouse,在HDFS中就可以看到该路径下有个文件夹名为t_user,这个文件夹名就是hive表名。(如下图)
五、删除表
1.只想删除表中的全部数据,不删除表。
hive> TRUNCATE TABLE t_user;
2.删除整个表。
hive> DROP TABLE t_user;
六、总结
本文主要介绍了针对结构化文件hive的内部表的创建,也许还有许多不足,欢迎各位大佬指点。如果对你有所帮助,请给予我记录更多文章的动力。