如何设置和运行SparkR项目和脚本(如jar文件)?

时间:2016-01-07 20:00:24

标签: r apache-spark sparkr

我们已成功完成所有关于在EC2实例上设置和运行RStudio中的基本程序的SparkR教程。

我们现在无法弄清楚的是如何创建一个项目,将SparkR作为依赖项,编译/ jar,并运行其中的任何各种R程序。

我们来自Scala和Java,因此我们可能会以错误的心态来实现这一目标。这在R中是否可行,或者它与Java的构建文件和jar有什么不同,或者你是否只需要在没有打包的jar的情况下单独运行每个R脚本?

1 个答案:

答案 0 :(得分:3)

  

你是否只需要在没有打包的jar的情况下单独运行每个R脚本?

或多或少。虽然您可以创建一个R包(-s)来存储代码的可重用部分(请参阅例如devtools::createR 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")