如何用 pig latin 压平和减去列

How to flatten and subtract columns with pig latin

我刚学猪;我该如何接受这个:

((a,b),c,(x,y),z)

然后得到这样的东西:

(a,b,c,x,y,z, ABS(c-z))

和你写的差不多。

A = load 'foobar' as (t:((a:double,b:double),c:double,(x:double,y:double,)z:double));
B = foreach A generate flatten(t);
C = foreach B generate a, b, c, x, y, z, ABS(c-z);

我假设 double 作为值的数据类型。不能 100% 确定展平,这取决于您的确切模式,这可能会产生不需要的值,在此处描述的情况下,它应该简单地删除内部括号。