gpt4 book ai didi

r - sparklyr hadoop配置

转载 作者:行者123 更新时间:2023-12-01 22:07:18 26 4
gpt4 key购买 nike

我很抱歉这个问题很难完全重现,因为它涉及一个正在运行的 spark 上下文(在下面引用为 sc),但我正在尝试在 sparklyr 中设置一个 hadoopConfiguration,专门用于从 RStudio 访问 swift/objectStore 对象sparklyr 作为 Spark 对象,但通常用于对 hadoopConfiguration 的 scala 调用。像(scala 代码):

sc.hadoopConfiguration.set(f"fs.swift.service.$name.auth.url","https://identity.open.softlayer.com"/v3/auth/tokens")

其中 sc 是一个正在运行的 spark 上下文。在 SparkR 中我可以运行(R 代码)

hConf = SparkR:::callJMethod(sc, "hadoopConfiguration") 
SparkR:::callJMethod(hConf, "set", paste("fs.swift.service.keystone.auth.url"), paste("https://identity.open.softlayer.com/v3/auth/tokens",sep=""))

在 sparklyr 中,我已经尝试了所有我能想到的咒语,但我最好的猜测是(再次是 R 代码)

sc %>% invoke("set", paste("fs.swift.service.keystone,auth.url"), paste("https://identity.open.softlayer.com/v3/auth/tokens",sep=""))

但这会导致

的非冗长错误(和不规则拼写)
Error in enc2utf8(value) : argumemt is not a character vector

当然,我尝试以我能想到的所有方式对输入进行编码(自然是 enc2utf8(value) 是第一个,但还有许多其他方式,包括列表和出现的 as.character(as.list(...))成为 sparklyr 程序员的最爱)。任何建议将不胜感激。我已经梳理了 sparklyr 的源代码,但在 sparklyr github 中找不到任何关于 hadoopConfiguration 的提及,所以恐怕我在核心配置中遗漏了一些非常基本的东西。我还尝试在 spark_connect() 核心调用的 config.yml 中传递这些配置,但在将“fs.swift.service.keystone.auth.url”设置为 sc$config$s 的过程中。 swift.service.keystone.auth.url 设置,显然无法将这些设置为核心 hadoopConfiguration。

顺便说一下,我使用的是 Spark1.6、scala 2.10、R 3.2.1 和 sparklyr_0.4.19。

最佳答案

我想通了

set_swift_config <- function(sc){
#get spark_context
ctx <- spark_context(sc)

#set the java spark context
jsc <- invoke_static(
sc,
"org.apache.spark.api.java.JavaSparkContext",
"fromSparkContext",
ctx
)

#set the swift configs:
hconf <- jsc %>% invoke("hadoopConfiguration")
hconf %>% invoke("set","fs.swift.service.keystone.auth.url",
"https://identity.open.softlayer.com/v3/auth/tokens" )
}

可以使用 set_swift_config(sc) 运行。

关于r - sparklyr hadoop配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40924870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com