如何匯出hive中的資料

2021-08-20 15:22:39 字數 1901 閱讀 4290

從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 相連線。

備註:

[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分隔。

使用 linux 命令實現:

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...