【问题标题】:Sparklyr on RStudio EC2 with invoke error hadoopConfiguration standalone clusterRStudio EC2 上的 Sparklyr 调用错误 hadoopConfiguration 独立集群
【发布时间】:2018-12-25 08:56:39
【问题描述】:

所以我在 EC2 上有一个 1 主/2 从独立集群。我正在从 EC2 运行 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

根据我的研究,我知道invokesparklyr 处理Java 对象的方式,我检查并确认我的Java 安装在主/从设备中,并且设置了JAVA_HOME

【问题讨论】:

    标签: r amazon-ec2 sparklyr


    【解决方案1】:

    当您致电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")
    

    应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 2020-02-06
      • 2016-03-17
      • 1970-01-01
      • 2018-09-04
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多