Hive 仅从HDFS目录加载少量文件

Hive 仅从HDFS目录加载少量文件,hive,Hive,我想将一些文件从HDFS目录加载到表中 HDFS目录中的文件如下所示 /data/log/user1log.csv /data/log/user2log.csv /data/log/user3log.csv /data/log/user4log.csv /data/log/user5log.csv 现在我想加载/data/log/user1log.csv和/data/log/user2log.csv文件 我试过下面的方法 CREATE EXTERNAL TABLE log_data (user

我想将一些文件从HDFS目录加载到表中

HDFS目录中的文件如下所示

/data/log/user1log.csv
/data/log/user2log.csv
/data/log/user3log.csv
/data/log/user4log.csv
/data/log/user5log.csv
现在我想加载/data/log/user1log.csv和/data/log/user2log.csv文件

我试过下面的方法

CREATE EXTERNAL TABLE log_data (username string,log_dt string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
tblproperties ("skip.header.line.count"="1");

load data inpath '/data/log/user1log.csv' into table log_data;
load data inpath '/data/log/user2log.csv' into table log_data;
但在将数据加载到表中之后,文件将从HDFS位置消失。 但是我们应该保存在HDFS位置的文件

请帮帮我


提前感谢。

我认为这是不可能的,当您在路径中加载
时,它会移动数据而不是复制数据

但是,您有一个外部表,因此即使不使用
load inpath

这是你可以做到的

指定配置单元表的位置

CREATE EXTERNAL TABLE log_data (username string,log_dt string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
tblproperties ("skip.header.line.count"="1");
location '/data/log_data/table'
将文件复制到位置

hdfs dfs -cp /data/log/user1log.csv /data/log_data/table/
hdfs dfs -cp /data/log/user2log.csv /data/log_data/table/

我认为这是不可能的,当你加载inpath时,它会移动数据而不是复制数据

但是,您有一个外部表,因此即使不使用
load inpath

这是你可以做到的

指定配置单元表的位置

CREATE EXTERNAL TABLE log_data (username string,log_dt string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
tblproperties ("skip.header.line.count"="1");
location '/data/log_data/table'
将文件复制到位置

hdfs dfs -cp /data/log/user1log.csv /data/log_data/table/
hdfs dfs -cp /data/log/user2log.csv /data/log_data/table/