#python #avro #dask
#python #avro #dask
Вопрос:
У меня есть фрейм данных dask со 100 разделами и 57 столбцами. Затем я хочу сохранить его как avro в облачном хранилище Google. Я проверил intake-avro
библиотеку, но она может конвертировать только avro в фреймы данных dask, а не наоборот.
Есть ли какая-нибудь библиотека для этого, или я должен написать свою собственную? Я хочу убедиться, что не изобретаю велосипед.
Ответ №1:
Действительно, intake-avro (и другие драйверы intake) связаны с форматом / сервисом -> знакомый контейнер, а не с выводом.
Avro, вообще говоря, не является столбчатым форматом, и поэтому, чтобы записать его с помощью Dask, вам нужен bag
, а не dataframe
. Вы захотите сделать:
df.to_bag().to_avro(...)
(смотрите документы)
К сожалению, вам нужно будет создать свой собственный объект schema JSON, который должен быть довольно простым из dtypes исходного фрейма данных.
Библиотека, которую intake-avro и Dask используют для быстрого чтения avro в фреймы данных, uavro, в какой-то момент может быть расширена и для записи.
Комментарии:
1. спасибо, это действительно полезно. вы знаете, есть ли в dask hh функция для создания схемы json?
2. Это не так. Я не знаю, есть ли какое-то другое место, где вы могли бы получить это, но написать его было бы несложно.