配置单元查询删除源数据blob

tf7tbtn2  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(259)

我正在使用azure hdinsight(3.1.3.577)。
运行hiveql语句:将数据inpath'/mydata/employee.txt'加载到employee表中;
正确加载数据,但也有删除源文本文件的副作用。这种行为使我感到困惑。
在文档中(https://cwiki.apache.org/confluence/display/hive/gettingstarted)下面是“从hdfs加载数据将导致移动文件/目录。因此,操作几乎是瞬间完成的。”
我的困惑是,既然每次运行都必须用源数据重新加载hdfs(azureblobstore),为什么这样做会有效。

b5lpy0ml

b5lpy0ml1#

试试这个,

create external table myTable (Userid string, name string)
row format delimited
fields terminated by '\t'
LOCATION '/myData/employee.txt' ;

位置应在hdfs中;

jbose2ul

jbose2ul2#

hive使用hdfs将其表数据存储在默认位置“/user/hive/warehouse”下。
当数据已经存在于hdfs中时,我们创建一个外部表,并使用location关键字提供hdfs路径。这不会导致将文件/目录移动到默认位置。
通过这样做,hive假设数据存在于给定的路径中,而它不拥有数据。
即使删除表,路径中指定的数据仍然存在。

相关问题