2013-06-18 40 views
2

我想編寫一個依賴傳入腳本的參數的配置單元查詢。這些參數可能需要我從未知數量的列中進行選擇。 我想要做的是傳遞給腳本的參數之一是一個包含列名稱的字符串,由一些正則表達式分隔,可能是一個逗號。 我一直在拉我的頭髮,試圖將簡單的字符串轉換爲使用分割UDF的數組,並在查詢中使用結果數組。 基本上,給出 A =「Foo,Bar」 我想要得到 B = [Foo,Bar] 然後就能夠執行一個查詢,如SELECTname [0] from tablename; 一個澄清:我試圖分裂我在傳遞一個變量如何在Hive中調用用戶定義的函數?

編輯: 我已經意識到我的理想不會做這個 - 有什麼辦法來構造一個蜂巢查詢,並將其傳遞在?

EDIT2: 使用-e標誌。不是最好的做法,但我看不到另一種方式來做到這一點。也許利用豬會是更好的選擇。

回答

2

你爲什麼不傳遞你想要選擇的列的列表。例如這個腳本有一個變量柱

INSERT OVERWRITE DIRECTORY 's3://dummy/dummy/' 
select ${COLUMNS} from table; 

運行此使用CLI只是傳遞要選擇這樣

$> hive -f <path to script> -d COLUMNS=col1,col2,col3 

HTH列的列表, 迪諾

+0

這是有道理的 - 外觀就像我有一些重構要做!謝謝。 – abu

+0

請投票:) –

+0

我不能:(沒有足夠的點呢。 – abu

相關問題