1

一部のデータセットでいくつかの変換を行っており、健全な形式に公開する必要があります。現在、describe を実行すると、最終的なセットは次のようになります。

{memberId: long,companyIds: {(subsidiary: long)}}

次のようにする必要があります。

{memberId: long,companyIds: [long] }

companyIdslong 型の ID の配列のキーはどこですか?

このように物事を操作する方法に本当に苦労していますか?何か案は?FLATTENおよびその他のコマンドを使用して、有用性を確認してみました。AvroStorage を使用して、ファイルをこのスキーマに書き込みます。

このデータを書き込む必要があるフィールド スキーマは次のようになります。

"fields": [
        { "name": "memberId", "type": "long"},
        { "name": "companyIds", "type": {"type": "array", "items": "int"}}
      ]
4

2 に答える 2

1

これは少し古いことは知っていますが、最近同じ問題に遭遇しました。

avrostorage documentationに基づいて、最新バージョンの pig と avrostorage を使用して、avro 配列にバッグを直接キャストすることが可能です。

あなたの場合、次のようなものが必要になる場合があります。

STORE blah INTO 'blah' USING AvroStorage('schema','{your schema}');

スキーマの配列フィールドはどこにありますか

{  
    "name":"companyIds",
    "type":[  
        "null",
        {  
            "type":"array",
            "items":"long"
        }
    ],
    "doc":"company ids"
}
于 2015-11-12T23:05:49.410 に答える