先准备一份数据
上传到HDFS指定目录
先测试一下load
建表,然后load数据(load经测试,无论load文件还是load目录都是可以的呢)
经查询,表中有数据
接下来去看看HDFS目录上的文件,可以看到,它已经被加载到hive目录下了
所以,load数据的话会使数据发生迁移
接下来测试一下location(我测试的时候没有将此表声明为外部表,每每创建的时候,都将生成一个新的目录......就不将错误案例贴出来了)
先将数据重新上传指定目录
经过测试,location必须是一个目录,不能是文件,不然会报错
经查询,有数据
接下来去看看HDFS目录上的文件
文件还在
所以,location是不会使数据发生迁移,是以此路径作为源数据的感觉。
location果然还是和外部表配合比较有意义呢,若是没有声明外部表而直接location的话,该目录下的数据就会全部丢失,不注意不行。
总结:
load data会使数据目录发生改变
location 则不会,而是以此目录作为源数据