Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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 NOT运算符将创建两个相互排斥的组_Apache Pig - Fatal编程技术网

Apache pig NOT运算符将创建两个相互排斥的组

Apache pig NOT运算符将创建两个相互排斥的组,apache-pig,Apache Pig,在我的脚本中,我从多个文件中读取数据,并使用一个正则表达式及其补码将记录划分为两个组/类。我期待两个相互排斥的类,但我没有发现当我数记录。。。 因此,我添加了一个分割部分,以查找约束及其补充未涵盖的“其余”记录。结果(再次)不是预期的结果。。。 我的剧本怎么了?谢谢你的帮助 预期的“数学”: input: 1464 records ouputs: 264 + 870 + ???_330__?? 剧本: A = load 'input/*' using PigStorage('\t','-

在我的脚本中,我从多个文件中读取数据,并使用一个正则表达式及其补码将记录划分为两个组/类。我期待两个相互排斥的类,但我没有发现当我数记录。。。 因此,我添加了一个分割部分,以查找约束及其补充未涵盖的“其余”记录。结果(再次)不是预期的结果。。。 我的剧本怎么了?谢谢你的帮助

预期的“数学”:

 input: 1464 records
 ouputs: 264 + 870 + ???_330__?? 
剧本:

A = load 'input/*' using PigStorage('\t','-tagPath') as (src:chararray, content:chararray);
Ac = foreach (GROUP A all) generate COUNT(A);

B = filter A by content MATCHES '(^\\b[BCDFMSTX].*\\b\\:\\s{1}.*)';
Bc = foreach (GROUP B all) generate COUNT(B);

Bnot = filter A by NOT content MATCHES '(^\\b[BCDFMSTX].*\\b\\:\\s{1}.*)';
Bcnot = foreach (GROUP Bnot all) generate COUNT(Bnot);

SPLIT A INTO SET1 IF (content MATCHES '(^\\b[BCDFMSTX].*\\b\\:\\s{1}.*)')
              , SET2 IF (NOT content MATCHES '(^\\b[BCDFMSTX].*\\b\\:\\s{1}.*)')
              , SETn OTHERWISE;

STORE SET1 into 'output/set1';
STORE SET2 into 'output/set2';
STORE SETn into 'output/setn';
结果是:

 Input(s):
 Successfully read 1464 records (49024 bytes) from: "hdfs://localhost:9000/user/dag/input/*"

 Output(s):
 Successfully stored 264 records (25276 bytes) in: "hdfs://localhost:9000/user/dag/output/set1"
 Successfully stored 870 records (84190 bytes) in: "hdfs://localhost:9000/user/dag/output/set2"
 Successfully stored 0 records in: "hdfs://localhost:9000/user/dag/output/setn"

我假设在330种情况下,内容是
null
。如果将布尔表达式替换为
content is null或内容不匹配“(^\\b[BCDFMSTX].\\b\\:\\s{1}.*”
,则应该可以使用


话虽如此,我认为这不是很直观,我认为Pig应该抛出NullPointerException或至少记录一条警告。

嗨,是的,这是正确的。当我按内容筛选记录为空时,结果为330。