Преобразование фрейма данных dask в avro

#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. Это не так. Я не знаю, есть ли какое-то другое место, где вы могли бы получить это, но написать его было бы несложно.