通过浏览internet上有关外部表和托管表的内容,我了解到在创建外部表时需要指定位置,因为hive将在给定位置创建表,但对于托管表,将使用hive.metastore.warehouse.dir中提到的默认目录。如果有什么错误,请纠正我。让我困惑的是:location子句是用于指定外部表的数据存在的位置,还是用于创建存储实际数据的目录的位置?如果location子句用于指定数据存在的位置,那么为什么在load语句中使用path子句呢。
r1zk6ea11#
外部表的ddl中的location子句用于指定需要存储数据的hdfs位置。稍后,当我们查询表时,数据将从此指定路径读取。load data inpath是将数据加载到表中的源文件的路径。源可以是本地文件路径或hdfs文件路径。希望我把你的困惑弄清楚了。
1条答案
按热度按时间r1zk6ea11#
外部表的ddl中的location子句用于指定需要存储数据的hdfs位置。稍后,当我们查询表时,数据将从此指定路径读取。
load data inpath是将数据加载到表中的源文件的路径。源可以是本地文件路径或hdfs文件路径。
希望我把你的困惑弄清楚了。