RStudio EC2 上的 Sparklyr 调用错误 hadoopConfiguration 独立集群
Sparklyr on RStudio EC2 with invoke error hadoopConfiguration standalone cluster
所以我在 EC2 上有一个 1 master/2 从独立集群。我是来自 EC2 的 运行ning rstudio,在我 运行 之后是以下代码:
library(aws.s3)
library(sparklyr)
library(tidyverse)
library(RCurl)
Sys.setenv("AWS_ACCESS_KEY_ID" = "myaccesskeyid",
"AWS_SECRET_ACCESS_KEY" = "myaccesskey",
"SPARK_CONF_DIR" = "/home/rstudio/spark/spark-2.1.0-bin-hadoop2.7/bin/",
"JAVA_HOME" = "/usr/lib/jvm/java-8-oracle" )
ctx <- spark_context(sc)
jsc <- invoke_static(sc,
"org.apache.spark.api.java.JavaSparkContext",
"fromSparkContext", ctx)
hconf <- jsc %>% invoke("hadoopConfiguration")
最后一行是我遇到错误的地方:
Error in do.call(.f, args, envir = .env) :
'what' must be a function or character string
根据我的研究,我知道 invoke
是 sparklyr
处理 Java 对象的方式,我检查并确认我的 Java 安装在 master/slaves JAVA_HOME
已设置。
当您调用 library(tidyverse)
时,您会看到获取冲突信息,这将解释正在发生的事情:
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ purrr::invoke() masks sparklyr::invoke()
✖ dplyr::lag() masks stats::lag()
如您所见 purrr::invoke
,它与错误消息中的签名完全相同:
invoke(.f, .x = NULL, ..., .env = NULL)
阴影 sparklyr::invoke
。使用完全限定名称
jsc %>% sparklyr::invoke("hadoopConfiguration")
应该可以解决问题。
所以我在 EC2 上有一个 1 master/2 从独立集群。我是来自 EC2 的 运行ning rstudio,在我 运行 之后是以下代码:
library(aws.s3)
library(sparklyr)
library(tidyverse)
library(RCurl)
Sys.setenv("AWS_ACCESS_KEY_ID" = "myaccesskeyid",
"AWS_SECRET_ACCESS_KEY" = "myaccesskey",
"SPARK_CONF_DIR" = "/home/rstudio/spark/spark-2.1.0-bin-hadoop2.7/bin/",
"JAVA_HOME" = "/usr/lib/jvm/java-8-oracle" )
ctx <- spark_context(sc)
jsc <- invoke_static(sc,
"org.apache.spark.api.java.JavaSparkContext",
"fromSparkContext", ctx)
hconf <- jsc %>% invoke("hadoopConfiguration")
最后一行是我遇到错误的地方:
Error in do.call(.f, args, envir = .env) :
'what' must be a function or character string
根据我的研究,我知道 invoke
是 sparklyr
处理 Java 对象的方式,我检查并确认我的 Java 安装在 master/slaves JAVA_HOME
已设置。
当您调用 library(tidyverse)
时,您会看到获取冲突信息,这将解释正在发生的事情:
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ purrr::invoke() masks sparklyr::invoke()
✖ dplyr::lag() masks stats::lag()
如您所见 purrr::invoke
,它与错误消息中的签名完全相同:
invoke(.f, .x = NULL, ..., .env = NULL)
阴影 sparklyr::invoke
。使用完全限定名称
jsc %>% sparklyr::invoke("hadoopConfiguration")
应该可以解决问题。