Я пытаюсь загрузить относительно большой pandas
фрейм данных df
в таблицу Google BigQuery table_ref
, используя официальную python google-cloud-bigquery
клиентскую библиотеку.
Пока я попробовал два различные подходы:
1) загрузить таблицу непосредственно из фрейма данных в памяти
client = bigquery.Client()
client.load_table_from_dataframe(df, table_ref)
2) сохранить фрейм данных в файл паркета в Google Cloud Storage по адресу uri parquet_uri
и загрузить таблица из этого файла:
df.to_parquet(parquet_uri)
client = bigquery.Client()
client.load_table_from_uri(parquet_uri, table_ref)
Оба подхода приводят к одной и той же ошибке:
google.api_core.exceptions.BadRequest: 400 Превышено ресурсов во время выполнения запроса: UDF из Память.; Не удалось прочитать файл Parquet [...]. Это может произойти, если файл содержит слишком большую строку или общий размер страниц, загруженных для запрашиваемых столбцов, слишком велик.
Фрейм данных df
имеет 3 столбца и 184 миллион строк При сохранении в формате паркетного файла он занимает 1,64 ГБ.
Есть ли способ загрузить такой кадр данных в таблицу BigQuery, используя официальную клиентскую библиотеку python?
Заранее спасибо
Джованни