Как мне перебрать reader
, предполагая, что это объект pyarrow._flight.FlightStreamReader
. Который можно получить от
reader = client.do_get(flight_info.endpoints[0].ticket, options)
Весь скрипт example.py
взят с https://github.com/dremio-hub/arrow-flight-client-examples/blob/main/python/example.py
В настоящее время я пробую reader.read_pandas()
, чтобы он генерировал кадр данных для всех результатов Dremio. К сожалению, если запрос содержит более 50 миллионов строк или около того, он может не соответствовать фрейму данных/или может не хватить памяти для него, и мой процесс просто будет убит. Как мне перебирать объект читателя и просто получать куски, чтобы я мог генерировать кадр данных для каждого куска.
Когда я использую
for chunk in reader.read_chunk():
print(chunk.to_pandas())
для первого фрагмента он преобразует/извлекает только 3968 строк из результатов и помещает их в фрейм данных, но для второго фрагмента это объект None
. В моем примере действительно миллионы строк.
Короче говоря, как я могу перебирать читатель для указанного размера фрагмента? И можно ли печатать эти куски по строкам, не преобразовывая их в фрейм данных?