我正在使用azure hdinsight(3.1.3.577)。
运行hiveql语句:将数据inpath'/mydata/employee.txt'加载到employee表中;
正确加载数据,但也有删除源文本文件的副作用。这种行为使我感到困惑。
在文档中(https://cwiki.apache.org/confluence/display/hive/gettingstarted)下面是“从hdfs加载数据将导致移动文件/目录。因此,操作几乎是瞬间完成的。”
我的困惑是,既然每次运行都必须用源数据重新加载hdfs(azureblobstore),为什么这样做会有效。
2条答案
按热度按时间b5lpy0ml1#
试试这个,
位置应在hdfs中;
jbose2ul2#
hive使用hdfs将其表数据存储在默认位置“/user/hive/warehouse”下。
当数据已经存在于hdfs中时,我们创建一个外部表,并使用location关键字提供hdfs路径。这不会导致将文件/目录移动到默认位置。
通过这样做,hive假设数据存在于给定的路径中,而它不拥有数据。
即使删除表,路径中指定的数据仍然存在。