我有一個轉換腳本(用R編寫),我想在表的子集上運行。即我想要運行許多減少步驟,對於某個列的每個值,都需要一個步驟。在表的子集上運行Hive轉換腳本
假設原始表格有{C1,C2,C3}列,變換應該在不同的C1值上運行,並將C2和C3作爲輸入數據傳遞,並將輸出與C1的值一起作爲結果。
我正在尋找Hive DISTRIBUTE操作來解決這個問題,但無法弄清楚它的正確語法/機制。
例如,如果這是我的表:
C1,C2
a,1
a,2
b,1
b,2
b,3
而且我的腳本爲表的每個子集返回C2的平均值,C1,那麼結果應該是:
C1,D1
a,1.5
b,2
下面是語法錯誤我想要做的僞代碼。假設my_table有列C1,C2:
from my_table
select
C1,
transform(
C2
)
using 'my_script.R'
distribute by C1
;
謝謝馬克。我不確定這是否可以解決問題,因爲這並不意味着我的腳本只能在數據的子集上運行。我仍然需要明確處理在'a'行和'b'行上運行它。即如果我的腳本只是計算一個運行的意思,它會失敗。 – yoni