Как определить схему JSON для массива? - PullRequest
0 голосов
/ 11 июня 2018

У меня есть этот файл JSON:

    {  
        "tcCensusTractBlockFacesStatefp":"01",
        "tcCensusTractBlockFacesCountyfp":"001",
        "tcCensusTractBlockFacesTractce":"020200",
        "tcCensusTractBlockFacesBlockce10":"2022",
        "tcCensusTractBlockFacesGeoid":"010010202002022",
        "cellIDs":[  
        9839958675010879488,
        9839958675082706944,
        9839958677655912448,
        9839958677556297728,
        9839958676975910912,
        9839958677063991296,
        9839958677105934336,
        9839958679922409472,
        9839958679922933760,
        9839958679975886848,
        9839958679979032576,
        9839958679461036032,
        9839958679450550272,
        9839958678956670976,
        9839958678926262272,
        9839958667678187520,
        9839958667562844160,
        9839958675010879488
        ]
    }

Как определить схему для ее импорта в BigQuery следующим образом?

bq mk --table $DATASET:$TABLE tl_2017_schema.json
bq load --source_format=NEWLINE_DELIMITED_JSON $DATASET:$TABLE $WNAME 

Вот что я пытался сделать:

tl_2017_schema.json

...
---
     {
        "name": "cellIDs",
        "type": "RECORD",
        "mode": "REPEATED",
        "fields": [
            {
                "name": "cellID",
                "type": "INT64",
                "mode": "NULLABLE"
            }
        ]
    }
...

Но эта часть, отвечающая за ARRAY, не может соответствовать структуре массивов, которую я имею в файле JSON:

"cellIDs": [
9839958675010879488, 9839958675082706944, 9839958677655912448, 9839958677556297728, 9839958676975910912, 9839958677063991296, 9839958677105934336, 9839958679922409472, 9839958679922933760, 9839958679975886848, 9839958679979032576, 9839958679461036032, 9839958679450550272, 9839958678956670976, 9839958678926262272, 9839958667678187520, 9839958667562844160, 9839958675010879488]

1016 * Как это сделать?

1 Ответ

0 голосов
/ 12 июня 2018

Вероятно, проще просто выполнить оператор CREATE TABLE :

CREATE TABLE dataset.tablename
(
  ...
  cellIDs ARRAY<INT64>
)

Если вы действительно хотите указать схему в виде JSON, исправление в вашем примере - сделатьcellIDs a REPEATED INTEGER тип:

{
    "name": "cellIDs",
    "type": "INTEGER",
    "mode": "REPEATED"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...