我有两张桌子:
A: (feature:chararray, value:float)
B:(multiplier:charray, value:float)
其中A是包含数千行的表,B只有一行。
我想做的是获取A中的所有行并将B.value乘以B.value。
e.g。
A:[('f1', 1.5) , ('f2', 2.3)]
B:[('mul', 2)]
我想制作一张表C
C: [('f1', 3), ('f2', 4.6)]
有一种简单的方法吗?
答案 0 :(得分:2)
您可以执行FOREACH ... GENERATE
和X = A CROSS B;
Y = FOREACH X GENERATE A::feature, A::value * B::value;
。
var min = $('#rbSlider').data('slider').options.min;
var max = $('#rbSlider').data('slider').options.max;
上述代码尚未经过测试。
答案 1 :(得分:2)
如果您非常确定第二个表只有一行,那么请选择第一列
第二个表的并硬编码与第一个表中的最后一列相同的值,然后
进行内连接,你可以轻松地乘以
让第一个文件为plain.txt
(f1,1.5)
(f2,2)
这是第二个文件multi.txt
(mul,2)
A = load '/user/cloudera/inputfiles/plain.txt' USING PigStorage(',') AS(feature:chararray,value:double);
B = load '/user/cloudera/inputfiles/multi.txt' USING PigStorage(',') AS(operation:chararray,no:int);
C = foreach A generate feature,value,'mul' as ope;
D = join C by ope, B by operation;
E = foreach D generate feature,(value*no) as multiplied_value;