BigQuery, загрузите фрейм данных, содержащий повторяющиеся поля, используя клиент Python - PullRequest
1 голос
/ 08 октября 2019

Я загружаю pandas фрейм данных из программы на Python в таблицу больших запросов.

Код:

table_id = 'project.dataset.table'
job = client.load_table_from_dataframe(df, table_id)
job.result() 

Мой фрейм данных содержит пару столбцов, в которых хранятся большие массивыfloats.

Кажется, есть проблема с загрузкой повторяющихся полей с использованием метода load_table_from_dataframe в библиотеке python из-за некоторых проблем с базовой библиотекой pyarrow, как можно увидеть здесь .

Как лучше всего обойти это?

1 Ответ

0 голосов
/ 08 октября 2019

Отвечая на мой вопрос с обходным решением.

  1. Сначала я попытался использовать pandas_gbq.to_gbq(), однако это плохо поддерживает тип, поэтому не работает.

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

df_dict = df.to_dict(orient='records')

def insert_bq_row(rows):
    global client
    res = client.insert_rows(table, rows)
    assert res == []

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