hive数据怎么导入

hive数据怎么导入

Hive数据导入的方法

一、从本地文件系统中导入数据到Hive表

  1. 首先在Hive中创建好表,例如:
  2. hive create table wyp (id int, name string, age int, tel string) ROW FORMAT DELIMITED FIELDSTERMINATEDBY'\t' STORED AS TEXTFILE;
  3. 假设本地文件系统中有/home/wyp/wyp.txt文件,数据列之间使用\t分割。通过以下语句将文件中的数据导入到wyp表中:
  4. hive load data local inpath 'wyp.txt' into table wyp;
  5. 执行此命令后,会将wyp.txt里面的内容导入到wyp表中,可以到wyp表的数据目录下查看,如使用命令hive dfs -ls /user/hive/warehouse/wyp;。需要注意的是,Hive不支持在insert语句里面直接给出一组记录的文字形式(即不支持INSERT INTO….VALUES形式的语句)。

二、从HDFS上导入数据到Hive表

  1. 假设HDFS上有/home/wyp/add.txt文件,内容如下:
  2. 5 wyp123 13121212121212 6 wyp224 13453535353535 7 wyp325 13245353535353 8 wyp426 13542434343435
  3. 可以通过以下命令将这个文件里面的内容导入到Hive表(假设为wyp表)中:
  4. hive load data inpath '/home/wyp/add.txt' into table wyp;
  5. 从本地文件系统中将数据导入到Hive表的过程中,其实是先将数据临时复制到HDFS的一个目录下,然后再将数据从那个临时目录下移动到对应的Hive表的数据目录里面。所以Hive也支持直接从HDFS上的一个目录移动数据到相应Hive表的数据目录下。

三、从别的表中查询出相应的数据并导入到Hive表中

  1. 例如有表table1,要将table1中的数据查询出来并导入到table2中,可以使用类似如下的insert语句:
  2. hive insert into table2 select * from table1;
  3. 这里的insert into是以追加数据的方式插入到表中,原有数据不会删除。需要注意的是,insert不支持插入部分字段,并且后边跟select语句时,select之前不能加as,加了as会报错。

四、在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中

  1. 例如:
  2. hive create table new_table as select * from old_table;
  3. 这样在创建new_table表的时候就将old_table查询出的结果添加到新创建的表中了。
本篇文章所含信息均从网络公开资源搜集整理,旨在为读者提供参考。尽管我们在编辑过程中力求信息的准确性和完整性,但无法对所有内容的时效性、真实性及全面性做出绝对保证。读者在阅读和使用这些信息时,应自行评估其适用性,并承担可能由此产生的风险。本网站/作者不对因信息使用不当或误解而造成的任何损失或损害承担责任。
阅读全文