1

ピボットしている行の値を列名として使用して、Pig でいくつかのデータをピボットしたいと考えています。これらの値は事前にわかりません。これらの新しい列名を、関連する各値のスキーマとして保存したいと考えています。

これはPivoting in Pigと同じ質問ですが、列名が動的に生成されます。

今、私は次のようなタプルのバッグを持っています

{(C1, V1), (C2, V2), (C3, V3), ... (Cn, Vn)}

そして、私はそれらを次のように変更したいと思います:

dump bag;
{ (V1, V2, V3, ... Vn) }

describe bag;
bag: {C1: chararray,C2: chararray, ... , Cn: chararray}

現在、 をオーバーライドする UDF を使用してこれを実行しようとしていますが、の入力はスキーマ オブジェクトであると想定されており、スキーマ オブジェクトではフィールド値へのアクセスが許可されていないoutputSchema()ため、列名へのアクセスに問題があります。新しいスキーマを動的に作成する別の方法はありますか?outputSchema()input.get(<field-num>)

私がスキーマの使用に固執している理由は、最終的には CSV にエクスポートするためです。

4

0 に答える 0