Массивы не поддерживаются в Bigquery Python API

Поддержка python Bigquery API указывает на то, что массивы возможны, однако при переходе от фрейма данных pandas к bigquery возникает проблема со структурой pyarrow.

Кажется, что единственный способ обойти это - удалить столбцы, а затем использовать JSON Normalize для отдельной таблицы.

'''from google.cloud import bigquery
 project = 'lake'
 client = bigquery.Client(credentials=credentials, project=project)
 dataset_ref = client.dataset('XXX')
 table_ref = dataset_ref.table('RAW_XXX')
 job_config = bigquery.LoadJobConfig()
 job_config.autodetect = True
 job_config.write_disposition = 'WRITE_TRUNCATE'

 client.load_table_from_dataframe(appended_data, table_ref,job_config=job_config).result()'''

Это ошибка, полученная. NotImplementedError: структура


person David Draper    schedule 01.07.2019    source источник
comment
Это связано с некоторыми ограничениями в работе сериализации паркета. Отслеживание запроса на эту функцию на странице github.com/googleapis/google-cloud-python/issues. /8544   -  person Tim Swast    schedule 02.07.2019
comment
@TimSwast Уэс Маккинни из Pyarrow попросил поддержки, чтобы эта функция заработала. Могу я соединить вас обоих?   -  person David Draper    schedule 04.07.2019
comment
С удовольствием присоединюсь к этому. Моя электронная почта — это моя фамилия в google dot com.   -  person Tim Swast    schedule 11.07.2019


Ответы (1)


В настоящее время это не поддерживается из-за того, как работает сериализация паркета.

На GitHub клиентской библиотеки был создан запрос функции на загрузку массивов pandas DataFrame, содержащих массивы:

https://github.com/googleapis/google-cloud-python/issues/ 8544

person Community    schedule 09.08.2019