我有一个转换脚本(用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