テーブルのサブセットで実行したい変換スクリプト (R で記述) があります。つまり、いくつかの列の値ごとに 1 つずつ、多くの削減ステップを実行したいと考えています。
元のテーブルに列 {C1, C2, C3} があると仮定すると、変換は C1 の異なる値で実行され、C2 と C3 が入力データとして渡され、結果として C1 の値と共に出力が取得されます。
これを解決するために Hive DISTRIBUTE 操作を調べていますが、その正しい構文/メカニズムがわかりません。
たとえば、これが私のテーブルの場合:
C1,C2
a,1
a,2
b,1
b,2
b,3
私のスクリプトは、テーブルの各サブセット C1 に対して C2 の平均値を返します。結果は次のようになります。
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
;