我正在尝试使用spark.local.dir
从spark-shell设置sc.getconf.set("spark.local.dir","/temp/spark")
,但它无效。有没有其他方法可以从sparkshell设置此属性。
答案 0 :(得分:10)
你不能从里面 shell中做到 - 因为已经创建了Spark上下文,所以本地目录已经设置(并使用)了。当开始 shell时,您应该将其作为参数传递:
./spark-shell --conf spark.local.dir=/temp/spark
答案 1 :(得分:3)
@Tzach Zohar解决方案似乎是正确的答案。
但是,如果你坚持从spark-shell设置spark.local.dir,你可以这样做:
1)关闭当前的火花环境
sc.stop()
2)更新sc配置,然后重新启动它。
更新后的代码由@ Tzach-Zohar友情提供:
SparkSession.builder.config(sc.getConf).config("spark.local.dir","/temp/spark").getOrCreate())
@Tzach Zohar注意:"但是你得到一个 WARN SparkContext:使用现有的SparkContext,某些配置可能不会生效,这表明这不是推荐的路径采取。