like和as
hive中的like关键字允许复制一个已经存在的表的结构(只复制表的结构,不复制表中的数据),可以快速建表。
create table person1 like person;
hive中的as关可以创建一个以查询语句结果为数据内容的数据表,并且只要查询语句的结果不为空,创建好数据表后,数据表中就有数据。
create table person2 as select * from person where sex = "男";
create table person2 as select ip,name from person where sex = "男";
load关键字
hive中的load关键字时用来将文件加载到hive数据表中的,如果文件在Linux系统中(本地加载),使用load加载该文件时,会将该文件复制一份到hadoop中(默认路径为"/user/hive/warehouse/数据库名.db/表名"),如果文件在hadoop文件系统中,使用load加载该文件时,会将文件转移到"/user/hive/warehouse/数据库名.db/表名"中。
--本地加载,数据没有存储在HDFS集群中
hive>load data local inpath '文件路径' into table '表名'
--HDFS中加载,数据已经存储在HDFS集群中
hive>load data inpath '文件路径' into table '表名'
注:'文件路径’必须为绝对路径,并且该语句只能在hive的交互式窗口中使用
hive中的local关键字
hive中的local关键字表示指明将文件从本地(hive运行的那台机器,如果开启的是hive服务,则本地为开启hive服务的那台机器,hive服务客户端(即:编写命令的那台机器)不是本地)中加载到hive中。
hive中的overwrite关键字
hive中的overwrite关键字表示在加载数据时,如果加载了同名的文件时,将原先的文件覆盖掉,如果不写此参数,表示会将同名的文件以备份的方式追加载到hive数据表中,原先的文件会保留。
hive>load data local inpath '/datahive/b.txt' overwrite into table student;
注:此关键字要慎重使用,最好是不用使用;因为操作失误,会导致数据丢失。