從hive中匯出資料,寫入到可以直接使用的檔案,方法如下:
方法一:使用 linux 命令
可以使用hive -e
或者-f
命令,其中-e
表示直接執行後面跟的引數sql,-f
表示執行檔案中所有的sql。
$ hive -e
"select * from dev.test_table limit 10" > hive_result
這個命令會將select * from dev.test_table limit 10
的結果寫入到hive_result
本地檔案中,每一列用 \t 相連線。
$ cat hive_sql
select * from dev.test_table limit 10;
select sku_id from dev.test_table limit 10;
$ hive -f hive_sql > hive_result2
這個命令會將兩個sql的結果依次寫入到hive_result2
本地檔案中,每一列用 \t 相連線。兩個 sql 的列數可以不同。
方法二:使用 hive 命令
hive> insert overwrite local directory 'hive_result3'
> select * from dev.test_table limit 10;
這個命令會將結果寫入到hive_result3
資料夾下,如hive_result3/000000_0
。每一列用 ^a 相連線。
如果不想用 ^a 分割,可以修改列之間的分隔符,如:
hive> insert overwrite local directory 'hive_result4'
> row format delimited
> fields terminated by
'\t'
> select * from dev.test_table limit 10;
這個命令會將結果寫入到hive_result4/000000_0
,每一列用 \t 相連線。
備註:使用 linux 命令實現:[row format delimited]關鍵字,是用來設定建立的表在載入資料的時候,支援的列分隔符。
比如:
row format delimited
fields terminated by '\001'
collection items terminated by '\002'
map keys terminated by '\003'
表示不同列之間用乙個
\001
分隔,集合(例如array, map)的元素之間以\002
分隔,map中key和value用\003
分隔。
hive> insert overwrite directory '/user/test'
> select * from dev.test_table limit 10;
和匯入資料到本地檔案系統類似,但是少了local
。這個命令將會在hdfs的/user/test
目錄下儲存匯出來的資料。 hive資料匯出
一.操作前資料準備及資料資訊準備。二.使用select語句查詢結果寫入檔案中。命令範例一 命令範例二 註解 local的有無決定輸出檔案在本地檔案系統還是hdfs rowformat delimited fields terminated by t 決定檔案中資料的格式,且hive版本0.11之後才...
hive 匯出資料
hive有三種匯出資料的方式 匯出資料到本地 匯出資料到hdfs 匯出資料到另乙個表 匯出資料到本地檔案系統 insert overwrite local directory desfile select from srcfile 例 insert overwrite local directory...
hive 匯出資料
hive的資料匯出方式 hive有三種匯出資料的方式 匯出資料到本地檔案系統 insert overwrite local directory desfile select from srcfile 例 insert overwrite local directory home wyp wyp se...