我正在使用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)必须重新加载每次运行的源数据。
答案 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;