配置单元:即使表是外部的,源数据也会移动到配置单元数据仓库

drnojrws  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(454)

在配置单元查询浏览器中,我在配置单元中创建了一个外部表,并使用以下语句将其中一个csv文件中的数据加载到其中:

CREATE EXTERNAL TABLE movies(movieId BIGINT, title VARCHAR(100), genres VARCHAR(100)) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE;

LOAD DATA INPATH '/user/admin/movie_data/movies' INTO TABLE movies;

我看到源文件“movies”从hdfs中消失,并移动到hive数据仓库。我的印象是,外部表只充当到原始源数据的链接。
外部表不应该独立于源数据吗?就像我要删除表一样,源文件仍然会保留吗?如何创建这样一个外部表?

lg40wkob

lg40wkob1#

外部表将数据存储在我们创建表时提到的hdfs位置。因此,如果我们在创建表时不提供位置,它将默认为warehouse hdfs folder。尝试运行“use mydatabase\u name;显示create table mytable\u name;”获取表定义以查看它指向的位置。如果您需要默认位置以外的hdfs位置,则在创建表时需要提及它。请参阅下面的查询[创建外部表测试(col1 string)位置'/data/database/tablename';]其次,load inpath不会将数据从inpath移动到外部hdfs位置,它会将数据从inpath插入表中(更像是将数据从inpath复制到表的hdfs位置)

相关问题