4

使用するDESCRIBEと、Pigの出力に多くの二重コロンが表示されますが、それらが何を意味するのかは明らかではありません。

たとえば、グループ化してフラット化すると、次のようになります。

key::observerId:chararray,key::endpoint:chararray,...

ある時点で、observerIdとendpointでグループ化し、グループタプルの名前を「key」に変更してから、再フラット化しました。したがって、二重コロンは正確には何を意味し、最初の関係(key?observerId?)をどのように参照する必要がありますか?

4

1 に答える 1

5

あなたの質問では::は明確な演算子であり、JOIN、COGROUP、CROSS、またはFLATTEN演算子の後にフィールド名を識別するために使用されます。明確化演算子の使用例はここにあります

あなたの場合、observerIDとendpointの2つのフィールドがあり、両方ともキーエイリアスによって識別されます。つまり、observerIDとendpointの両方が同じエイリアスで参照され、他の「observerIDとendpoint」が他の「key」エイリアスを参照している可能性があります。

私はあなたが以下のようなものを使用したと思います:

key      = some_statement_with_observerID_and_endpoint
otherkey = some_statement_with_observerID_and_endpoint

これに基づいて、次のようなものが表示されます。

key::observerId:chararray,key::endpoint:chararray,...

上記の文は、表示されるobserverIDとエンドポイントがotherkeyエイリアスではなくkeyエイリアスの一部であることを意味します。

于 2013-03-27T00:06:47.660 に答える