Код: Выделить всё
query_job = client.query(
query,
)
storage_client = bigquery_storage.BigQueryReadClient()
rows = query_job.result(page_size=10000)
self._batch_arrow_iterator = rows.to_arrow_iterable(storage_client)
for batch in self._batch_arrow_iterator:
chunk_df: pl.DataFrame = pl.from_arrow(batch)
Мне нужно сделать это с помощью итератора, поскольку я не могу хранить весь набор данных в памяти одновременно.
Это кажется странным, поскольку каждая строка состоит из примерно 40 столбцов float32, так что это тоже не безумно большой размер, поэтому мне интересно, что может регулировать API хранилища больших запросов, чтобы он возвращал только 8 строк за раз.
PS: Я попробовал без BigQueryReadClient, поэтому он прошел через REST API, тогда было еще хуже - 2 строки на итерацию.
Мобильная версия