1.Hive数据导入的六种类型:
以下面两个表来实验:
1.从本地文件系统导入到hive表中:
使用load data语句可以直接导入本地文件到hive表中,加关键字local表示从本地系统上传文件到hive表:
2.从HDFS导入文件到hive表中:
如果不加关键字local表示从hdfs加载文件到hive表。下面先上传本地文件到hdfs,再加载到hive表:
load语句实际上是 移动文件
3.加载数据覆盖表中已有的数据:
上边2个语句中,load data语句,OVERWRITE参数决定加载文件时是否覆盖。
4.创建表时通过select语句加载:
create table ... as 语句会走mapreduce。
5.创建表,通过insert语句加载:
可以增加overwrite选项,来选择insert时,是否覆盖原表的数据。如果不加overwrite参数再执行一次该语句,那么emp3表的数据将会翻倍,查看该表hdfs的目录,会发现有2个文件(而不是一个文件):
6.创建表的时候通过Location指定:
先创建一张表,并指定该表的LOCATION,之后往LOCATON目录(HDFS上的路径)上传数据文件,再查询表时,就可以看到数据了。
如果先上传文件,再创建一个表,LOCATION目录是上传的HDFS目录的话,上传的目录会被覆盖清空。