Hive 外部表位置与加载路径

Posted

技术标签:

【中文标题】Hive 外部表位置与加载路径【英文标题】:hive external table location vs load path 【发布时间】:2016-01-20 17:09:11 【问题描述】:

通过互联网了解外部表和托管表,我了解到我们需要在创建外部表时指定位置,因为 hive 将在给定位置创建表,但在托管表的情况下,提到的默认目录在 hive.metastore.warehouse.dir 中将被使用。 如有错误请指正。

让我困惑的是:

    LOCATION 子句是否用于指定外部表的数据存在于何处,或者在何处创建目录以存储实际数据? 如果 LOCATION 子句用于指定数据存在的位置,那么我们为什么要在 LOAD 语句中使用 PATH 子句。

【问题讨论】:

【参考方案1】:

    外部表的 DDL 中的 location 子句用于 指定需要存储数据的 hdfs 位置。之后 当我们查询表时,将从这个指定的数据中读取数据 路径。

    load data inpath 是数据源文件的路径 被加载到表中。源可以是本地文件 路径或 hdfs 文件路径。

希望我已经消除了你的困惑。

【讨论】:

以上是关于Hive 外部表位置与加载路径的主要内容,如果未能解决你的问题,请参考以下文章

hive 内部表和外部表的区别

2018-11-13#Hive外表创建和加载数据

hive简单建表

Hive面经

带有位置的 Hive 外部表

使用路径中没有列名的分区创建 Hive 外部表?