假设我有两个表:
外部:
create external table emp_feedback (
emp_id int,
emp_name string
)
LOCATION '/user/hive/warehouse/mydb.db/contacts';
内部:
create table emp_feedback (
emp_id int,
emp_name string
)
LOAD DATA INPATH 'file_location_of_csv' INTO TABLE emp_feedback;
LOCATION '/user/hive/warehouse/mydb.db/contacts';
时,是否表示该表的数据位于'/user/hive/warehouse/mydb.db/contacts';
目录中?因此该目录必须事先存在于HDFS中? LOAD DATA INPATH...
用于external
表,还是仅用于internal
表。反之亦然,我可以对内部表使用Location...
吗? 最佳答案
LOAD DATA INPATH
可用于外部和内部表。完成后,它将数据移动到架构指定的位置(对于外部表)或/.../warehouse/...
(对于内部表)location
。但是,当您删除内部表时,它也会从该位置删除数据,而对于外部表仅删除元数据信息。