2015-02-15 3 views
1

У меня есть приложение, которое использует Spark для обработки данных и сохраняет его как RDD; Я инициализирую SparkContext с атрибутом «local». Я хочу использовать Mahout в этом наборе данных, но каков наилучший способ поделиться этими данными между двумя приложениями?Делитесь данными между Spark и Hadoop (Mahout)

Я новичок в экосистеме больших данных, поэтому ответ для меня не очень очевиден.

p.s. Я также установил Hadoop локально с помощью этого руководства http://amodernstory.com/2014/09/23/installing-hadoop-on-mac-osx-yosemite/ и смог запустить его.

ответ

1

Поскольку ваши данные находятся в RDD, к нему можно получить доступ только из контекста, который его создал, если вы не сохранили его в файле или каком-либо другом механизме сохранения.

Mahout - это библиотека, подобная MLlib, до тех пор, пока вы создаете контекст Spark для кода, который должен работать нормально.

Mahout имеет тип данных более высокого уровня, которые поддерживают общую линейную алгебру, поэтому вам может понадобиться преобразовать необработанный rdd в нечто вроде Rud Rout, созданного Mahout, с поддержкой DrmLike [Int], который является основным типом DistributedRowMatrix. Это будет зависеть от того, что содержит ваш RDD и что вы хотите с ним сделать, поэтому вам придется объяснить немного больше.

Обычно требуется несколько строк кода для принятия DRM и преобразования его в MLlib RDD векторов для обработки KMeans. Противоположное направление также довольно легко.

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