【发布时间】:2020-07-11 07:47:50
【问题描述】:
我有一个以换行符分隔的 JSON 文件。是否可以使用jq 之类的工具生成模式?我过去在jq 上取得了一些成功,但还没有做过这么复杂的事情。
这是我的目标架构格式:https://cloud.google.com/bigquery/docs/nested-repeated#example_schema。请注意,嵌套使用父级的fields 键处理,数组使用"mode": "repeated" 处理。 (非常感谢对 some 类型架构的任何帮助,然后我可以按摩到这种格式。
从上面的链接复制,我想从中生成:
{"id":"1","first_name":"John","last_name":"Doe","dob":"1968-01-22","addresses":[{"status":"current","address":"123 First Avenue","city":"Seattle","state":"WA","zip":"11111","numberOfYears":"1"},{"status":"previous","address":"456 Main Street","city":"Portland","state":"OR","zip":"22222","numberOfYears":"5"}]}
...到...
[
{
"name": "id",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "first_name",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "last_name",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "dob",
"type": "DATE",
"mode": "NULLABLE"
},
{
"name": "addresses",
"type": "RECORD",
"mode": "REPEATED",
"fields": [
{
"name": "status",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "address",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "city",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "state",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "zip",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "numberOfYears",
"type": "STRING",
"mode": "NULLABLE"
}
]
}
]
(参考 BigQuery autodetect doesn't work with inconsistent json?,表明我不能使用 BigQuery 自动检测,因为项目不一样。我很有信心可以手动将架构合并在一起以创建超集)
【问题讨论】: