У меня есть файл JSON с разделителем новой строки. Можно ли сгенерировать схему с помощью такого инструмента, как jq
? У меня был некоторый успех с jq
в прошлом, но я не сделал ничего сложного.
Вот формат схемы, к которой я стремлюсь: https://cloud.google.com/bigquery/docs/nested-repeated#example_schema. Обратите внимание, что вложение обрабатывается ключом fields
родительского элемента, а массивы обрабатываются с помощью "mode": "repeated"
. (Любая помощь с некоторыми схемами очень важна, и я затем могу помассировать в этот формат).
Копируя по ссылке выше, я хотел бы сгенерировать из этого:
{"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"}]}
... to ...
[
{
"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"
}
]
}
]
(ref Автоопределение BigQuery не работает с несовместимыми json?, показывая, что я не могу использовать автоопределение BigQuery, потому что элементы не совпадают. Я вполне уверен, что могу объединить схемы вручную для создания надмножества)