レポート用にデータを処理するために dataprep を使用しようとしています。
ただし、配列であるはずのフィールドは、bigquery では文字列として認識されます。
サンプルデータ:
{"name":"herman","age":34,"property":[{"address":"henry street","state":"vic"},{"address":"mount waverley","state":"vic"}]}
{"name":"Handry","age":61,"property":[{"address":"Balwyn","state":"vic"},{"address":"Clayton","state":"vic"}]}
基本的に、いくつかのフィールドを大文字にしたいだけです(これは単純な例にすぎません。私は非常に複雑な変換を行っています)。Wrangle ファイルは次のとおりです。
flatten col: property
unnest col: property keys: 'state','address' markLineage: true
drop col: property
derive value: upper(property_address) as: 'upper_property_address'
drop col: property_address
derive value: upper(property_state) as: 'upper_property_state'
drop col: property_state
nest col: upper_property_state,upper_property_address as: 'column1'
derive value: list(column1, 1000) group: name as: 'column2'
drop col: column1,upper_property_address,upper_property_state
deduplicate
そして最後にbigquery(テーブル内)になります:
{"age":"61","name":"Handry","column2":"[{\"upper_property_state\":\"VIC\",\"upper_property_address\":\"BALWYN\"},{\"upper_property_state\":\"VIC\",\"upper_property_address\":\"CLAYTON\"}]"}
{"age":"34","name":"herman","column2":"[{\"upper_property_state\":\"VIC\",\"upper_property_address\":\"HENRY STREET\"},{\"upper_property_state\":\"VIC\",\"upper_property_address\":\"MOUNT WAVERLEY\"}]"}
私はこれをグーグルの問題でも尋ねます。 https://issuetracker.google.com/issues/69773118
疑問に思っているのですが、誰かがこの問題を抱えていて、回避策がありますか? ここで説明されているように、biquery で JSON をクエリできることはわかっています: How to query json stored as string in bigquery table?
ただし、クエリが複雑になるため、避けたいと思います。