HIVE查询删除源数据blob

时间:2015-06-05 06:23:02

标签: azure hadoop hive

我正在使用Azure HdInsight(3.1.3.577)。

运行HIVEQL语句: LOAD DATA INPATH' /myData/employee.txt' INTO TABLE员工;

正确加载数据,但也有删除源文本文件的副作用。这种行为令我感到困惑。

在文档(https://cwiki.apache.org/confluence/display/Hive/GettingStarted)中有以下内容 "从HDFS加载数据将导致移动文件/目录。因此,操作几乎是即时的。"

我的困惑是为什么这样做会有效,因为HDFS(Azure blobstore)必须重新加载每次运行的源数据。

2 个答案:

答案 0 :(得分:0)

Hive使用HDFS将其表格数据存储在默认位置" / user / hive / warehouse"。

当HDFS中已存在数据时,我们会创建外部表,并使用LOCATION关键字提供HDFS路径。这不会导致将文件/目录移动到默认位置。

通过这样做,Hive假定数据存在于给定路径中,并且它不拥有数据。

即使删除表,路径中指定的数据仍然存在。

答案 1 :(得分:0)

试试这个,

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

位置应该是hdfs;