R 斯巴克对斯巴克
有人对SparkR和Sparkyr的优缺点有什么看法吗?谷歌并没有产生任何令人满意的结果,两者似乎相当相似。尝试这两种方法,SparkR看起来要麻烦得多,而Sparkyr非常简单(既可以安装,也可以使用,尤其是使用dplyr输入)。Sparkyr只能用于并行运行dplyr函数,还是也可以用于“正常”R代码R 斯巴克对斯巴克,r,apache-spark,sparkr,sparklyr,R,Apache Spark,Sparkr,Sparklyr,有人对SparkR和Sparkyr的优缺点有什么看法吗?谷歌并没有产生任何令人满意的结果,两者似乎相当相似。尝试这两种方法,SparkR看起来要麻烦得多,而Sparkyr非常简单(既可以安装,也可以使用,尤其是使用dplyr输入)。Sparkyr只能用于并行运行dplyr函数,还是也可以用于“正常”R代码 最佳有关概述和详细信息,请参阅。 引用文档中的话,“Sparkyr包提供了完整的dplyr后端”。这反映出SparkyR不是原始ApacheSpark的替代品,而是它的扩展 继续,在单机上安装
最佳有关概述和详细信息,请参阅。 引用文档中的话,“Sparkyr包提供了完整的dplyr后端”。这反映出SparkyR不是原始ApacheSpark的替代品,而是它的扩展 继续,在单机上安装(我是Windows用户)时,您可能需要下载并安装新的RStudio预览版本,或者在RStudio shell中执行以下一系列命令
>devtools::install\u github(“rstudio/sparkyr”)
如果尚未安装readr和digest软件包,请安装它们
install.packages("readr")
install.packages("digest")
library(sparklyr)
spark_install(version = "1.6.2")`
安装软件包并尝试使用命令连接到spark的本地实例后
sc <- spark_connect(master = "local")
sc我可以为您提供以下方面的亮点:
- 支持,以及
- 分发给
- 易于安装
在当前的0.4
版本中,它还不支持任意并行代码执行。但是,可以轻松地用Scala编写扩展以克服此限制,请参见。。。。加之以上来自Javier
到目前为止,我发现SparkyR不支持do(),只有当你想做突变、总结等允许的事情时才使用它。在幕后,SparkyR正在转换为Spark SQL,但没有(现在?)将do()转换为类似UDF的东西
另外,到目前为止,我发现SparkyR不支持tidyr,包括unnest()。SparkR的最大优点是能够在Spark中运行任意用户定义的函数,这些函数是用R编写的:
由于Sparkyr将R转换为SQL,因此只能在mutate
语句中使用非常小的函数集:
扩展()在一定程度上缓解了这一缺陷
除此之外,Sparkyr是一个赢家(在我看来)。除了使用熟悉的dplyr
函数的明显优势外,SparkyR还有更全面的MLlib()API和上述扩展。作为一个包装器,SparkyR
还有一些限制。例如,使用copy_to()
创建Spark数据框不会保留格式化为日期的列。使用SparkR
,as.Dataframe()
保留日期。我最近写了一篇关于SparkR与sparkyr的优缺点的概述,可能会感兴趣:
在文章的顶部有一个简单的例子,它给出了一系列标准差异的大致概述
我的结论是sparkyr
比SparkR
更可取。最显著的优点是:
通过与dpylr
更好的函数命名约定
快速评估ML模型的更好工具
更容易在Spark数据帧上运行任意代码
由于我没有看到太多的答案支持sparkR
,我只想提一下,作为一名新手,我开始学习这两种方法,我发现sparkR api与我使用的standardscala spark
更为密切相关。当我研究它们时,我的意思是我想使用rstudio
和scala,我需要在sparkr和sparkyr之间进行选择。与scala spark api一起学习sparkR似乎比学习SparkYR更省力,至少在我看来,SparkYR更为不同。然而,它似乎更强大。因此,对我来说,这是一个问题:您是想使用功能更强大、更常用的库并获得社区更多的支持,还是折衷并使用与scala spark中更相似的api,这至少是我选择的观点。您指向Sparkyr的链接是错误的。应该是:0.6
现在支持任意并行代码执行。自2017-06-05
以来,sparkyr(0.6.0)
的未发布版本可以通过新添加的spark_apply()
函数运行“大规模分布式R代码”。来源:有一个扩展可以帮助缩小tidyr
的差距:问题是Sparkyr没有对使用spark 1.6、2.0、2.3等之间的细微差别进行基准测试,也没有技术支持来验证spark ETL与Hive或其他本机Hadoop服务一起实现产品化的最佳方法。。。以稳健和可重复的生产级流程为目标。至少在SparkR版本中,MapR、Cloudera或Hortonworks的开发团队可以参与进来,因为他们支持所有这些apache平台。