2
我試圖通過Hive使用DESCRIBE函數將每個表的列描述輸出到單個文件。我發現-f選項,這樣我就可以從文件中讀取和寫入輸出退了出來:運行多個配置單元查詢並將輸出寫入文件
hive -f nameOfSqlQueryFile.sql > out.txt
不過,如果我打開輸出文件,它拋出所有的描述背靠背目前還不清楚其中一個描述從一個表開始並結束。
所以,我試圖使使用-e一一描述每個表的一個批處理文件,並輸出到一個文件:
#!/bin/bash
nameArr=($(hive -e 'show tables;'))
count=0
for i in "${nameArr[@]}"
do
echo 'Working on table('$count'): '$i
hive -e 'describe '$i > $i'_.txt';
count=$(($count+1))
done
然而,因爲這需要重新對每個查詢,這是處理數百個查詢需要數小時,速度非常緩慢。
有沒有人有一個想法,我怎麼可能運行這些DESCRIBE函數,並理想地輸出到單獨的文件?
如果你只在表定義興趣,而不是數據,你可能有一些運氣直接進入Metastore。根據您的metastore,您可能會直接獲取東西(mySQL),或者我聽說有一個用於Metastore的Java API。 – LiMuBei