bigquery вложенный объект: нет такого поля - PullRequest
0 голосов
/ 23 мая 2018

У меня есть таблица с этой схемой: enter image description here

Я пытаюсь загрузить некоторые данные из Google Coud Storage с помощью клиента Python.Файл JSON разделен символом новой строки.Большинство моих строк не имеют поля "passenger_origin.accuracy", но когда поле присутствует, у меня возникает следующая ошибка:

Ошибка при чтении данных, сообщение об ошибке: Ошибка синтаксического анализа JSON при запуске строкив позиции 2122510: такого поля нет: driver_origin.accuracy.(код ошибки: неверный)

Ошибка при чтении данных, сообщение об ошибке: Ошибка синтаксического анализа JSON в строке, начиная с позиции 2126317: Нет такого поля: passenger_origin.accuracy.(код ошибки: неверный)

Пример недопустимой строки:

{
    "id": 1479443,
    "is_obsolete": 0,
    "seat_count": 1,
    "is_ticket_checked": 0,
    "score": 0.3709318902,
    "is_multimodal": 0,
    "fake_paths": 0,
    "passenger_origin": {
        "id": 2204,
        "poi_uuid": "15b4e52c-7c58-442c-98df-1eb06079f6bb",
        "user_id": 1987,
        "accuracy": 250.0,
        "disabled": 0,
        "last_update": "2017-03-10T15:15:39",
        "created": "2016-02-05T17:06:26",
        "modified_by_user": 1,
        "is_recurrent": 0,
        "source": 1,
        "hidden_by_user": 0,
        "kind": 2,
    },
    "driver_origin": {
        "id": 412491,
        "poi_uuid": "47e90b6d-e178-4e02-9f02-f4ea5f8beaa1",
        "user_id": 71471,
        "disabled": 0,
        "last_update": "2017-11-02T10:09:09",
        "created": "2017-11-02T10:09:09",
        "modified_by_user": 0,
        "is_recurrent": 0,
        "source": 1,
        "hidden_by_user": 0,
        "kind": 2,
    },
    "passenger_destination": {
        "id": 2203,
        "poi_uuid": "c531c3ca-47f0-4003-8098-1272fee8d018",
        "user_id": 1987,
        "accuracy": 250.0,
        "disabled": 0,
        "last_update": "2017-03-10T15:12:42",
        "created": "2016-02-05T17:06:19",
        "modified_by_user": 1,
        "is_recurrent": 0,
        "source": 1,
        "hidden_by_user": 0,
        "kind": 1,
    }
}

Таблица создается перед загрузкой данных и с тех пор не изменяется.Я не понимаю, почему загрузка не удалась на этих полях?Обязательно ли повторять поля ЗАПИСЬ?

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Проблема была в том, что файл configuration.load.autodetect был установлен в True.Я установил его в False, и проблема была исправлена ​​

0 голосов
/ 23 мая 2018

Чтобы игнорировать поля, которых нет в схеме, используйте комбинацию:

Установка первого на true, а второго на какое-то произвольно большое число, например 100000, позволит загрузке завершиться успешно, даже если есть дополнительные поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...