Список Python для BigQuery повторяется строка - PullRequest
0 голосов
/ 11 апреля 2019

Я работаю с Google BigQuery, используя приложение Python.

У меня есть фрейм данных с полем, которое содержит списки, назовем его «ключевые слова».У меня также есть таблица BigQuery с полем ключевых слов STRING и mode = REPEATED.

Это схема моей таблицы BigQuery:

Моя схема таблицы BigQuery

SCHEMA = [
    bq.SchemaField("id", "STRING", mode="NULLABLE"),
    bq.SchemaField("fecha", "DATE", mode="NULLABLE"),
    bq.SchemaField("keywords", "STRING", mode="REPEATED")
]

И это мой код:

import pandas as pd
from datetime import date
from google.cloud import bigquery as bq

df_dict = {
    "id": ["asdf173","qwer783","vcda619"],
    "fecha": [date(2019,1,15), date(2019,1,28), date(2019,2,12)],
    "keywords": [['a','b'], ['c','d','e'],['f']]
}

df = pd.DataFrame(df_dict)

client = bq.Client()
dataset = client.dataset(dataset_name)
table_ref = dataset.table(table_name)

client.load_table_from_dataframe(df, table_ref).result()

Я получаю следующую ошибку при попытке загрузить кадр данных в таблицу BigQuery:

400Предоставленная схема не соответствует идентификатору проекта таблицы: dataset-name.table-name.Ключевые слова в поле изменили тип с STRING на RECORD.

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 11 апреля 2019

С учетом этого сообщения об ошибке:

400 Предоставленная схема не соответствует идентификатору таблицы проекта: dataset-name.table-name.Ключевые слова поля изменили тип с STRING на RECORD.

И структура таблицы, которую вы предоставили

enter image description here

Вы можетевидите, что вы пытаетесь вставить ARRAY aka RECORD в строковое поле.

Вам нужно изменить тип ключевых слов поля с String на RECORD, чтобы решить вашу проблему

enter image description here

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