如果我使用SparkR(不是spark-submit
)初始化Spark会话,就像这样...
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
sparkR.session()
有没有办法设置队列?我试过这样的事情:
sparkR.session(queue = "queue_name")
但它似乎没有用。我在SparkR中成功使用队列的唯一方法是使用已弃用的init()
函数:
sc <- SparkR::sparkR.init(master = "yarn-client", sparkEnvir = list(spark.yarn.queue="queue-name"))
hiveContext <- sparkRHive.init(sc)
但是这会引发警告:'SparkR::sparkR.init' is deprecated.
这如何转化为sparkR.session()
?
答案 0 :(得分:1)
启动spark R时,已生成Spark Session。 您需要停止当前会话并启动一个新会话以设置所需的设置。
我使用以下
sparkR.stop()
sparkR.session(
# master="local[2]", # local master
master="yarn", # cluster master
appName="my_sparkR",
sparkConfig=list(
spark.driver.memory="4g",
spark.executor.memory="2g",
spark.yarn.queue="your_desired_queue"
)
)
从Spark监控页面验证设置是否正确更新。