我们已成功完成所有关于在EC2实例上设置和运行RStudio中的基本程序的SparkR教程。
我们现在无法弄清楚的是如何创建一个项目,将SparkR作为依赖项,编译/ jar,并运行其中的任何各种R程序。
我们来自Scala和Java,因此我们可能会以错误的心态来实现这一目标。这在R中是否可行,或者它与Java的构建文件和jar有什么不同,或者你是否只需要在没有打包的jar的情况下单独运行每个R脚本?
答案 0 :(得分:3)
你是否只需要在没有打包的jar的情况下单独运行每个R脚本?
或多或少。虽然您可以创建一个R包(-s)来存储代码的可重用部分(请参阅例如devtools::create
或R packages),并可选择将其分发到群集上(因为当前的公共API仅限于高与JVM后端的级别交互不应该是必需的),传递给spark-submit
的只是一个R脚本:
SparkContext
- SparkR::sparkR.init
SQLContext
/ HiveContexts
- SparkR::sparkRSQL.init
/ SparkR::sparkRHive.init
SparkContext
- SparkR::sparkR.stop
假设worker上存在外部依赖项,那么使用if require
模式可以在运行时上安装缺少的包,例如:
if(!require("some_package")) install.packages("some_package")
或
if(!require("some_package")) devtools::install_github("some_user/some_package")