SparkR против sparklyr
Есть ли у кого-нибудь обзор преимуществ/недостатков SparkR против sparklyr? Google не дает удовлетворительных результатов, и оба они кажутся довольно похожими. Попробуйте оба, SparkR выглядит намного более громоздким, в то время как sparklyr довольно прямолинейный (как для установки, так и для использования, особенно с входами dplyr). Может ли sparklyr использоваться только для запуска функций dplyr параллельно или также "нормального" R-кода?
Лучший
Ответы
Ответ 1
Самым большим преимуществом SparkR является способность запускать на Spark произвольные пользовательские функции, записанные в R:
https://spark.apache.org/docs/2.0.1/sparkr.html#applying-user-defined-function
Так как sparklyr переводит R в SQL, вы можете использовать очень малый набор функций в операторах mutate
:
http://spark.rstudio.com/dplyr.html#sql_translation
Этот недостаток несколько смягчается Extensions (http://spark.rstudio.com/extensions.html#wrapper_functions).
Кроме этого, sparklyr - победитель (на мой взгляд). Помимо очевидного преимущества использования знакомых функций dplyr
, sparklyr имеет гораздо более полный API для MLlib (http://spark.rstudio.com/mllib.html) и вышеупомянутые расширения.
Ответ 2
Подробные сведения и подробные сведения можно найти в документации .
Цитируя из документации, "пакет sparklyr предоставляет полный сервер dplyr". Это отражает, что sparklyr - это NOT замена оригинальной искры apache, но расширение на нее.
Продолжая рассказывать о своей установке (я пользователь Windows) на автономном компьютере, вам нужно либо загрузить и установить новую версию RStudio Preview, либо выполнить следующую последовательность команд в оболочке RStudio,
> devtools::install_github("rstudio/sparklyr")
установить пакеты readr и digest, если они не установлены.
install.packages("readr")
install.packages("digest")
library(sparklyr)
spark_install(version = "1.6.2")`
Как только пакеты установлены, и вы попытаетесь подключиться к локальному экземпляру искры с помощью команды;
sc <- spark_connect(master = "local")
Вы можете увидеть ошибку, например
Создан каталог по умолчанию для hadoop bin в: C:\spark-1.6.2\tmp\hadoop Ошибка:
Чтобы запустить Spark на Windows, вам нужна копия Hadoop winutils.exe:
- Загрузить Hadoop winutils.exe из
- Скопируйте файл winutils.exe в C:\spark-1.6.2\tmp\hadoop\bin
В качестве альтернативы, если вы используете RStudio, вы можете установить RStudio Preview Release, который включает встроенную копию файла Hadoop winutils.exe.
Разрешение ошибки предоставляется вам. Перейдите к учетной записи github, загрузите файл winutils.exe и сохраните его в местоположении, C:\spark-1.6.2\tmp\hadoop\bin
и попробуйте снова создать контекст искры. В прошлом году я опубликовал всеобъемлющую запись в блоге RStudio Preview. Это значительно избавит вас от необходимости создавать искробезопасный текст. Продолжая далее, вот подробное сообщение о том, как можно использовать sparklyr R-bloggers.
Надеюсь, это поможет.
Приветствия.
Ответ 3
Я могу дать вам основные моменты для sparklyr:
В текущей версии 0.4
она еще не поддерживает выполнение произвольного параллельного кода. Однако расширения можно легко записать в Scala, чтобы преодолеть это ограничение, см. sparkhello.
Ответ 4
... добавление к вышеизложенному от Хавьера...
Что я могу найти до сих пор, sparklyr не поддерживает do(), что делает его полезным только тогда, когда вы хотите делать то, что разрешено мутацией, суммировать и т.д. Под капотом sparklyr преобразуется в Spark SQL, но doesn 't (пока?) преобразует do() в нечто вроде UDF.
Кроме того, что я могу найти до сих пор, sparklyr не поддерживает tidyr, включая unsest().
Ответ 5
Являясь оболочкой, существуют ограничения для sparklyr
. Например, использование copy_to()
для создания фреймворка Spark не сохраняет столбцы, отформатированные как даты. С SparkR
, as.Dataframe()
сохраняются даты.
Ответ 6
Недавно я написал обзор преимуществ/недостатков SparkR vs sparklyr, которые могут представлять интерес: https://eddjberry.netlify.com/post/2017-12-05-sparkr-vs-sparklyr/.
В верхней части сообщения есть таблица, в которой содержится общий обзор различий для диапазона критериев.
Я заключаю, что sparklyr
предпочтительнее SparkR
. Наиболее заметными преимуществами являются:
- Улучшение управления данными с помощью
dpylr
- Соглашения об именовании функциональных возможностей
- Лучшие инструменты для быстрой оценки моделей ML.
- Легче запускать произвольный код на Spark DataFrame