Apache spark Spark:如何修改本地SparkSession的输出目录?

Apache spark Spark:如何修改本地SparkSession的输出目录?,apache-spark,Apache Spark,我有以下用于测试的SparkSession: SparkSession.builder().master("local").getOrCreate() 例如,每当我运行写入数据的单元测试时,例如,df.write.csv(“foobar”)输出目录将位于项目的顶层。我知道我可以修改写入程序的path参数,但我特别感兴趣的是全局更改根目录(用于读取和写入),而不必在配置之外指定它。经过大量调试后,我找到了它。只需设置user.dir系统属性即可。 例如:System.setProperty(

我有以下用于测试的
SparkSession

  SparkSession.builder().master("local").getOrCreate()

例如,每当我运行写入数据的单元测试时,例如,
df.write.csv(“foobar”)
输出目录将位于项目的顶层。我知道我可以修改写入程序的path参数,但我特别感兴趣的是全局更改根目录(用于读取和写入),而不必在配置之外指定它。

经过大量调试后,我找到了它。只需设置
user.dir
系统属性即可。
例如:
System.setProperty(“user.dir”,“/tmp”)
,所有本地表和输出文件都将保存在
/tmp

根目录是什么意思?您能详细说明一下吗?如果我的测试保存或加载数据帧,它会在我的项目的根目录中创建和加载目录,即src、test、build.sbt文件所在的位置。换句话说,
新文件(“./”
)。我希望将这些目录保存并加载到其他位置。好的,我不知道有任何这样的配置参数。您必须依靠编写器的参数将数据写入您自己的路径。您有spark.local.dir-Directory用于spark中的“scratch”空间,包括存储在磁盘上的映射输出文件和RDD。这应该在系统中的快速本地磁盘上。它也可以是不同磁盘上多个目录的逗号分隔列表。注意:在Spark 1.0及更高版本中,这将被群集管理器设置的Spark_LOCAL_DIRS(独立、Mesos)或LOCAL_DIRS(纱线)环境变量覆盖。但是,我认为这对您没有帮助。出于好奇,我搜索了所有属性,但没有找到任何此类参数。