本文共 1416 字,大约阅读时间需要 4 分钟。
在Hive中建好表之后,需要将数据加载进来,以便做后续查询分析,本文介绍向Hive表中加载数据的几种方式。
如果你的数据已经在HDFS上存在,已经为结构化数据,并且数据所在的HDFS路径不需要维护,那么可以直接在建表的时候使用location指定数据所在的HDFS路径即可。
比如:
这里内部表和外部表都可以指定,但需要注意,如果是内部表,那么在DROP该表的时候,同时会将LOCATION所指定的目录一起删除。
如果数据在本地,或者HDFS的某一个目录下,需要加载到目标中或分区中,那么使用LOAD DATA命令即可加载数据:
LOAD DATA LOCAL INPATH ‘/home/lxw1234/t_lxw1234/’
INTO TABLE t_lxw1234 PARTITION (day = ‘2015-06-15’);
LOAD DATA INPATH ‘/user/lxw1234/t_lxw1234/’
INTO TABLE t_lxw1234 PARTITION (day = ‘2015-06-15’);
这个比较简单,就是将一个查询结果插入到目标表或分区中:
INSERT overwrite TABLE t_lxw1234 PARTITION (day = ‘2015-06-15’)
SELECT day,url from source_table;
这里也介绍一下从Hive中导出数据到文件系统(HDFS和本地文件系统)。
语法为:
如果指定了LOCAL关键字,则为导出到本地文件系统,否则,导出到HDFS。
使用ROW FORMAT关键字可以指定导出的文件分隔符,比如:该语句将t_lxw1234表的所有数据导出到本地文件系统/tmp/lxw1234/目录,字段间的分隔符为逗号。
cat /tmp/lxw1234/000000_0
2015-05-10,url1 2015-05-10,url2 2015-06-14,url1 2015-06-14,url2 2015-06-15,url1 2015-06-15,url2更多关于Hive数据加载和导出的介绍,请参考官方文档:
转载地址:http://ytrli.baihongyu.com/