1. Hive表数据的导入方式
1.1 本地上传至hdfs
命令:
hdfs dfs -put [文件名] [hdfs绝对路径]
例如:测试文件 test_001.txt 内容如下
在 hdfs 绝对路径:/user/hive/warehouse/mytest.db/ 下有一张表 test_001,建表语句如下:
create table test_001(id string, name string) row format delimited fields terminated by '\t';
使用如下命令将 test_001.txt 的内容上传至 /user/hive/warehouse/mytest.db/test_001 表中
hdfs dfs -put test_001.txt /user/hive/warehouse/mytest.db/test_001
注意:
test_001.txt 文件内容中:数据类型、数据列数、列数之间的分隔符要与 hdfs 中 test_001 表定义的一一对应。
1.2 本地导入
命令:
load data local inpath [本地文件路径] into table [表名];
示例:
load data local inpath '/user/xiaomin.liu/hive_testdata/student.csv' into table student;
含义:
将 /user/xiaomin.liu/hive_testdata 目录下 student.csv 文件的内容加载至 hdfs 中的 student 表中。
注意:
1. student.csv 文件内容中:数据类型、数据列数、列数之间的分隔符要与 hdfs 中 student 表定义的一一对应。
2. 使用本地导入的方式加载数据至 hive,使用的是复制操作,即当本地路径下的文件被加载至 hive 后,该本地路径下的文件依然存在,不会消失。
1.3 hdfs导入
命令:
load data inpath [文件在hdfs中的路径] into table [表名];
示例:
load data inpath '/user/warehouse/test/student.txt' into table student;
含义:
将 hdfs 路径为 /user/warehouse/test 下的 student.txt 文件的数据加载至 hdfs 中的 student 表中。
注意:
使用 hdfs 导入数据至 hive,使用的是剪切操作,即原 hdfs