当我使用时,DESCRIBE
我在 Pig 输出中看到很多双冒号,它们的含义并不明显。
例如,在分组和展平之后,我看到如下内容:
key::observerId:chararray,key::endpoint:chararray,...
在某些时候,我按observerId 和endpoint 分组,将组元组重命名为“key”,然后重新展平。那么,双冒号究竟是什么意思,我应该如何引用第一个关系(key?observerId?)
当我使用时,DESCRIBE
我在 Pig 输出中看到很多双冒号,它们的含义并不明显。
例如,在分组和展平之后,我看到如下内容:
key::observerId:chararray,key::endpoint:chararray,...
在某些时候,我按observerId 和endpoint 分组,将组元组重命名为“key”,然后重新展平。那么,双冒号究竟是什么意思,我应该如何引用第一个关系(key?observerId?)
在您的问题中::是消歧运算符,它用于在 JOIN、COGROUP、CROSS 或 FLATTEN 运算符之后识别字段名称。您可以在此处找到使用消歧运算符的示例。
在您的情况下,您有两个字段observerID 和端点,它们都由键别名标识,这意味着observerID 和端点都在同一个别名中被引用,而其他“observerID 和端点”可能被其他“键”别名引用。
我认为您使用了以下内容:
key = some_statement_with_observerID_and_endpoint
otherkey = some_statement_with_observerID_and_endpoint
基于此,您将看到如下所示的内容:
key::observerId:chararray,key::endpoint:chararray,...
上面这句话意味着您看到的observerID 和endpoint 是key 别名的一部分,而不是otherkey 别名。