導入數據
從文件中裝載數據
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 ...;