2016-12-12 6 views
1

Я пытаюсь импортировать кадр, создавая рамку h2o из файла паркета искры. Файл 2GB имеет около 12M строк и разреженных векторов с 12k cols. Он не такой большой в паркетном формате, но импорт берет навсегда. В h2o это фактически указано как сжатый размер 447mb. Довольно мало.h2o сверкающая вода сохранить рамку на диск

Я делаю это неправильно, и когда я фактически заканчиваю импорт (занял 39мин), есть ли какая-либо форма в h2o, чтобы сохранить кадр на диск для быстрой загрузки в следующий раз?

Я понимаю, что h2o делает некоторую магию за сценой, которая занимает так много времени, но я нашел только вариант загрузки csv, который является медленным и огромным для разрешенных данных 11k x 1M, и я сомневаюсь, что он быстрее импортируется.

Я чувствую, что часть отсутствует. Любая информация о ввозе/экспорте данных h2o приветствуется. Сохранение/загрузка модели отлично работает, но загрузка данных поезда/вали/теста кажется неоправданно медленной процедурой.

Я получил 10 искрообразователей по 10 г каждый и дал водителю 8г. Этого должно быть много.

ответ

0

Использовать h2o.exportFile() (h2o.export_file() в Python), с аргументом parts, установленным в -1. Значение -1 эффективно означает, что каждая машина в кластере будет экспортировать только свои собственные данные. В вашем случае у вас будет 10 файлов, и оно должно быть в 10 раз быстрее, чем в противном случае.

Чтобы прочитать их обратно, используйте h2o.importFile() и указать все 10 частей при загрузке:

frame <- h2o.importFile(c(
    "s3n://mybucket/my.dat.1", 
    "s3n://mybucket/my.dat.2", 
    ... 
)) 

Давая массив файлов, они будут загружены и обработаны параллельно.

Для локального кластера локальной сети рекомендуется использовать HDFS для этого. У меня были разумные результаты, сохраняя файлы на S3 при запуске кластера на EC2.

+0

(Я не использовал этот подход с Spark, поэтому я просто проверяю одного из разработчиков, если есть какая-то причина, по которой он не может быть использован ...) –

0

Я предлагаю экспортировать dataframe из Спарка в формат SVMLight файла (см MLUtils.saveAsLibSVMFile (...). Этот формат может быть затем изначально заглатывание H2O.

Как Даррен указал, вы можете экспортировать данные из ... H2O в нескольких частях, которые ускоряют экспорт Однако H2O в настоящее время поддерживает только экспорт в CSV-файлы Это неоптимальное для использования при очень разреженных данных этой функция доступна через Java API:

water.fvec.Frame.export(yourFrame, "/target/directory", yourFrame.key.toString, true, -1 /* automatically determine number of part files */) 

 Смежные вопросы

  • Нет связанных вопросов^_^