2

希望使用Spark 安装scalac中包含的自定义(Scala 编译器) ;sparklyr在 RStudio SparkUI 选项卡中找到(或从spark_web(sc))>>环境>>/jars/scala-compiler-2.11.8.jar作为“系统环境”——而不是scalac在基本目录中单独下载和安装——如在此处找到并从 RStudio 链接的“hello world”示例中所建议的那样创建扩展页面http://spark.rstudio.com/extensions.html

这是我到目前为止使用 Ubuntu 所拥有的,但在下面的错误中停滞不前。我设置了一个与上面“hello world”示例中使用的 Github-repo 完全相同的目录。/opt/scala知道如何在不安装在建议的基本路径文件夹之一(即、/opt/local/scala/usr/local/scala~/scala(仅限 Windows)的情况下)的情况下克服此错误?想要sparklyr为给定用户使用本机安装和相对路径。

library(titanic)
library(sparklyr)

# spark_web(sc) # Opens Web Console to find Scala Version and scalac

# Sets Working Directory to R folder of file
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))

sparkVers <- '2.0.0'; scalaVers <- '2.11.8'; packageName <- "sparkhello"
packageJarExtR <- spark_compilation_spec(spark_version = sparkVers, 
                   spark_home = spark_home_dir(), 
                   scalac_path = paste0(spark_home_dir(),"/jars","/scala-compiler-", scalaVers, ".jar"), #
                   scala_filter = NULL, 
                   jar_name = sprintf(paste0(getwd(),"/inst/java/", packageName, "-%s-%s.jar"), sparkVers, scalaVers) 
                   )

sparklyr::compile_package_jars(spec = packageJarExtR)

# Error: No root directory found. Test criterion:
#   Contains a file 'DESCRIPTION' with contents matching '^Package: '
# In addition: Warning message:
#   running command ''/mnt/home/eyeOfTheStorm/.cache/spark/
#   spark-2.0.0-bin-hadoop2.7/jars/scala-compiler-2.11.8.jar' 
#     -version 2>&1' had status 126



### 

library(sparkhello) 

# Connect to local spark cluster and load data
sc <- spark_connect(master = "local", version = "2.0.0")
titanic_tbl <- copy_to(sc, titanic_train, "titanic", overwrite = TRUE)
4

1 回答 1

0

由于工作目录错误而发生错误,它不能是R目录。

首先,您必须创建一个 R 包(https://www.youtube.com/watch?v=9PyQlbAEujY)“成为 sparklyr 扩展包”并将其命名为 sparkhello。然后,在其中创建三个文件夹:

1)R文件夹:包含hello.R,它是你的scala代码的R warper和dependencies.R文件(如hello world示例所示)

2) JAVA 文件夹:在 .scala 文件中包含您的 scala 代码

3) inst/java 文件夹:稍后它将包含您的 jars,它们将在执行后自动创建:

sparklyr::compile_package_jars()

(重要文件-)描述文件:您可以自己创建或复制并粘贴 sparhello 示例中可用的文件

之后,构建你的包,然后检查你的工作目录

getwd()

你必须找到它指向你创建它的包("/home/"user"/sparkhello") 如果不改变它

setwd("/home/user/sparkhello")

设置正确的工作目录后,重新执行上面提到的代码

于 2018-04-14T21:35:12.557 回答