Есть ли хороший способ прочитать содержимое Spark RDD в структуру Dask - PullRequest
0 голосов
/ 06 ноября 2018

В настоящее время интеграция между структурами Spark и Dask кажется сложной при работе со сложными вложенными структурами. Конкретный сброс данных Spark Dataframe со вложенной структурой для чтения Dask, похоже, пока не очень надежен, хотя загрузка паркета является частью больших текущих усилий (fastparquet, pyarrow);

поэтому мой следующий вопрос - давайте предположим, что я могу жить с несколькими преобразованиями в Spark и преобразовать DataFrame в RDD, который содержит объекты пользовательских классов; Есть ли способ надежно сбросить данные Spark RDD с объектами пользовательских классов и прочитать их в коллекции Dask? Очевидно, что вы можете собрать rdd в список python, выбрать его, а затем прочитать как обычную структуру данных, но это исключает возможность загрузки больше, чем наборы данных памяти. Может ли dask использовать что-то вроде искрового травления для загрузки распределенного рассола?

1 Ответ

0 голосов
/ 06 ноября 2018

Я решил это, выполнив следующее

Имея Spark RDD со списком пользовательских объектов в качестве значений строк, я создал версию rdd, в которой сериализовал объекты в строки, используя cPickle.dumps. Затем преобразовал этот RDD в простой DF со строковыми столбцами и записал его в паркет. Dask умеет читать файлы паркета с простой структурой. Затем десериализовали с помощью cPickle.loads, чтобы получить исходные объекты

...