HIVE与HDFS进行数据导入导出操作

1. 将HDFS文件导入到HIVE中 

1.1 创建内部表

create table result(user_id int ,product_id int ,rating float) commend "save user information" 
row format delimited fields terminated by ',' ;  
load data inpath "/hadoop/input/result.csv"

上面是是先创建一个表,然后指定表的分隔符为,

注意的点:

1. 创建的表为内部表,如果要创建外部表,则需要写成create external table result ,内部表和外部表的区别就是,内部表在删除表的时候,文件也会跟着删掉,如果是外部表,那么在删除表的时候,文件还是存在的不会删掉。

2.  load data inpath 如果写成Load data local inpath 那么就是导入的本地文件

3. 主要在进行load hdfs文件到HIVE,会发现本身放在hdfs路径下的文件消失了,实际并没有消失只是被移动到了hive的hdfs在warehouse目录下去了

4.指定字段之间的分隔符 ,默认分隔符为"\001”,如果分隔符不对,那么读进去的数据就是NULL

1.2. 创建外部表的方式

create external table result(user_id int ,product_id int ,rating float) commend "save user information" 
row format delimited fields terminated by ',' ;  
location "/hadoop/input/result.csv"

这里指定了location ,不指定外部表的依赖就是默认访问hive配置的metastore.warehouse.dir的路径,用来指定数据存放和读取的路径

2 从HIVE将数据导出到HDFS

insert overwrite directory "/hadoop/input/result.csv"
row format delimited
fileds terminated by ','
select user_id,pro_id,rating from result;

这里上面就是定义了导出数据的语句以及导出字段之间间隔符为 ,。这样导出后是带了字段名的,也就是导出的文件中第一行为字段名

你可能感兴趣的:(HIve)