2016-10-02 6 views

答えて

1

FLATTEN演算子は構文的にはUDFのように見えますが、実際はUDFではできない方法でタプルとバッグの構造を変更する演算子です。アンネストのタプルとバッグを平坦にします。考え方は同じですが、操作と結果は構造の種類ごとに異なります。

タプルの場合、flattenは、タプルの代わりにタプルのフィールドを置き換えます。たとえば、(a、(b、c))という形のタプルを持つ関係を考えてみましょう。式GENERATE $ 0、flatten($ 1)は、そのタプルを(a、b、c)にします。

バッグの場合、状況はより複雑になります。バッグを外したら、新しいタプルを作成します。 ({(b、c)、(d、e)}の形式のタプルで構成された関係があり、GENERATE flatten($ 0)を適用すると、2つのタプル(b、c)と(d、e)。バッグ内で一定レベルのネスティングを取り除くと、クロス商品が発生することがあります。例えば、GROUP演算子によって一般的に生成される(a、{(b、c)、(d、e)})のタプルを持つ関係を考えてみましょう。このタプルにGENERATE $ 0、flatten($ 1)という式を適用すると、(a、b、c)と(a、d、e)の新しいタプルが作成されます。

さらに詳しい情報がありますlink

関連する問題