Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache pig 如何计算pig中不同别名的数据减法?_Apache Pig - Fatal编程技术网

Apache pig 如何计算pig中不同别名的数据减法?

Apache pig 如何计算pig中不同别名的数据减法?,apache-pig,Apache Pig,现在我想计算:count_c-count_b-count_a。如何在PIG脚本中实现这一点?您需要将三个别名连接在一起,为此您需要一个公共字段来连接。假设它们都是单记录别名,您可以创建一个字段n来加入: dump count_a; (10) dump count_b; (20) dump count_c; (30) 然后您可以通过公共字段n加入a&b&c all: prep_a = FOREACH count_a GENERATE 1 AS n, a; prep_b = FOREACH

现在我想计算:count_c-count_b-count_a。如何在PIG脚本中实现这一点?

您需要将三个别名连接在一起,为此您需要一个公共字段来连接。假设它们都是单记录别名,您可以创建一个字段n来加入:

dump count_a;
(10)

dump count_b;
(20)

dump count_c;
(30)
然后您可以通过公共字段n加入a&b&c all:

prep_a = FOREACH count_a GENERATE 1 AS n, a; 
prep_b = FOREACH count_b GENERATE 1 AS n, b; 
prep_c = FOREACH count_c GENERATE 1 AS n, c; 
然后最后计算最终结果:

ab = JOIN prep_a by n FULL, prep_b by n;
abc = JOIN ab by prep_a::n FULL, prep_c by n;

由于您只是在进行常规连接,不必担心键是否存在,因此可以在一条语句中完成所有操作:
abc=join prep_a BY n,prep_b BY n,prep_c BY n
result = FOREACH abc GENERATE (c - b - a) AS result;