导入数据
从文件中装载数据
hive>LOAD DATA [LOCAL] INPATH '...' [OVERWRITE] INTO TABLE t2 [PARTITION (province='beijing')];
LOCAL:linux本地的文件。无LOCAL:是hdfs的文件
注意:
从本地文件系统中将数据导入到Hive表的过程中,其实是先将数据临时复制到HDFS的一个目录下(典型的情况是复制到上传用户的HDFS home目录下,比如/home/wyp/),然后再将数据从那个临时目录下移动(注意,这里说的是移动,不是复制!)到对应的Hive表的数据目录里面。
既然如此,那么Hive肯定支持将数据直接从HDFS上的一个目录移动到相应Hive表的数据目录下。
是的!经过测试:将HDFS的文件导入到HIVE的表后,HDFS原来目录的下的文件没了,跑到HIVE表目录下面了。
hive>INSERT OVERWRITE TABLE t2 PARTITION (province='beijing') SELECT * FROM xxx WHERE xxx
导出数据
在hdfs复制文件(夹)
$ hadoop fs -cp source destination
使用DIRECTORY
hive>INSERT OVERWRITE 【LOCAL】 DIRECTORY '...' SELECT ...FROM...WHERE ...;