0

これが組み込みの PIG スクリプトで実行できるかどうか、または UDF をコーディングする必要があるかどうかはわかりません。しかし、基本的には、データを転置したいだけのテーブルがあります。

簡単に言えば、次のとおりです。

(1, 2, 3, 4, 5)
(6, 7, 8, 9, 10)
(11, 12, 13, 14, 15)
 ... 300 plus more tuples

私は次のようになります:

(1,6,11,...) -> goes on for a few hundred more
(2,7,12,...)
(3,8,13,...)
(4,9,14,...)
(5,10,15,...)

これを達成する方法について何か提案はありますか?

4

1 に答える 1

1

これはPigでは不可能であり、そうすることもあまり意味がありません。リレーションはタプルのバッグであり、定義上、バッグが特定の順序でタプルを持つことは保証されないことを忘れないでください。あなたはで始めるかもしれません

(1, 2, 3, 4, 5)
(6, 7, 8, 9, 10)
(11, 12, 13, 14, 15)

しかし、Pigの観点からは、これと

(11, 12, 13, 14, 15)
(1, 2, 3, 4, 5)
(6, 7, 8, 9, 10)

これは、「転置」が明確に定義されていないことを意味します。このように見てください。2回転置すると、同じデータ構造に戻るはずですが、途中でタプルを並べ替えることができるため、これが発生する保証はありません。

結局、本当に行列演算を行う必要がある場合は、行と列の両方の順序を尊重するツールを使用する方がよいでしょう。

そうは言っても、あなたは何を達成しようとしていますか?

于 2012-11-21T17:32:24.157 に答える