Сбой задания загрузки BigQuery для полей логического типа данных из JSON - PullRequest
0 голосов
/ 27 октября 2018

Я получаю сообщение об ошибке «Неверный файл данных» при загрузке файла NDJSON в Google BigQuery, когда я включаю столбец логического типа данных. Задание выполняется успешно, если я удаляю эти столбцы из схемы и исходного файла. Я использую процесс load_table_from_uri через скрипт на python, но я также пробовал его в графическом интерфейсе и по той же проблеме. Файл json для логических полей выглядит правильно (прилагается). Я также попробовал как устаревшие, так и текущие логические типы данных (BOOL vrs BOOLEAN). Чего мне не хватает.

dataset_id = 'dev'  
table_id = 'DIM_EMP'  
table_ref = bqClient.dataset(dataset_id).table(table_id)

job_config = bigquery.LoadJobConfig()
job_config.schema = [
bigquery.SchemaField('personId', 'INT64'),
bigquery.SchemaField('personNumber', 'STRING'),
bigquery.SchemaField('firstName', 'STRING'),
bigquery.SchemaField('middleName', 'STRING'),
bigquery.SchemaField('lastName', 'STRING'),
bigquery.SchemaField('userName', 'STRING'),
bigquery.SchemaField('accessProfile', 'STRING'),
bigquery.SchemaField('notificationProfile', 'STRING'),
bigquery.SchemaField('preferenceProfile', 'STRING'),
bigquery.SchemaField('supervisorPersonId', 'INT64'),
bigquery.SchemaField('hireDate', 'DATE'),
bigquery.SchemaField('processEmployeeProfile', 'STRING'),
bigquery.SchemaField('logonProfile', 'STRING'),
bigquery.SchemaField('birthDate', 'DATE'),
bigquery.SchemaField('delegateProfile', 'STRING'),
**bigquery.SchemaField('isManager','BOOLEAN')
bigquery.SchemaField('isEmployee','BOOL'),**
bigquery.SchemaField('localeProfile', 'STRING')
]
job_config.write_disposition = bigquery.WriteDisposition.WRITE_TRUNCATE
job_config.source_format = bigquery.SourceFormat.NEWLINE_DELIMITED_JSON
uri = 'gs://'+project+'-stage/getPeopleDetails/DIMEMP*.ndjson'
load_job = bqClient.load_table_from_uri(
    uri,
    table_ref,
    job_config=job_config)  # API request

load_job.result()

Исходный файл JSON

1 Ответ

0 голосов
/ 28 октября 2018

Для загрузки файла NDJSON в BigQuery логические значения true и false должны быть заключены в кавычки. Если столбец содержит только «true» или «false», BigQuery автоматически установит его тип на Boolean.

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