Настроить имена столбцов в Python загрузки файла BigQuery - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь загрузить файл из библиотеки Google BigQuery Python (google-cloud-bigquery==1.3.0)

Использование документации :

dataset_ref = client.dataset(dataset_id)
table_ref = dataset_ref.table(table_id)
job_config = bigquery.LoadJobConfig()
job_config.source_format = bigquery.SourceFormat.CSV
job_config.skip_leading_rows = 1
job_config.autodetect = True

with open(filename, 'rb') as source_file:
    job = client.load_table_from_file(
        source_file,
        table_ref,
        location='US',
        job_config=job_config)

job.result()

Это успешно создает таблицу и вставляет данные, в данном случае, простой файл с одним столбцом строкового типа.

Однако устанавливается следующее имя столбца: string_field_0.

Есть ли способ настроить имена этих столбцов?

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Вы должны иметь возможность добавить схему для задания загрузки. например,

job_config.schema = [SchemaField('columnName', 'STRING', mode='nullable')]
0 голосов
/ 03 июля 2018

Поскольку у вас есть только один столбец только из Strings, BigQuery не может определить, какие имена заголовков / столбцов, даже если вы используете job_config.skip_leading_rows = 1 в своем коде, т.е. он не знает разницы между строкой и заголовок. Если у вас есть второй столбец с скажем, Integer, то BigQuery сможет сохранить имена столбцов, потому что теперь он может отличить.

В качестве обходного пути, либо не используйте auto_detect и вручную укажите схему (в конце концов, это всего лишь один столбец), либо загрузите ее, а затем добавьте несколько SQL и переименуйте столбец.

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