Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 使用java.io.File.mkdirs()将文件写入目录,然后在spark cluster模式下访问它_Scala_Apache Spark - Fatal编程技术网

Scala 使用java.io.File.mkdirs()将文件写入目录,然后在spark cluster模式下访问它

Scala 使用java.io.File.mkdirs()将文件写入目录,然后在spark cluster模式下访问它,scala,apache-spark,Scala,Apache Spark,当我尝试在客户端模式下运行相同的代码时,代码运行成功。但在群集模式下运行时,它无法创建文件,并提示没有此类文件或目录 下面是代码示例: new File("UnexistingLocation").mkdirs() --->在客户端模式下创建的目录 --->代码在集群模式下没有给出错误,但我看不到创建的目录。此外,在目录中创建文件时,不会出现错误,因为没有此类文件或目录 是否有一种解决方法可以在驱动程序节点本地文件系统上创建文件?由于您的错误分析,我假设这是在驱动程序范围的代码中运行的。如果使

当我尝试在客户端模式下运行相同的代码时,代码运行成功。但在群集模式下运行时,它无法创建文件,并提示没有此类文件或目录

下面是代码示例:

new File("UnexistingLocation").mkdirs()
--->在客户端模式下创建的目录

--->代码在集群模式下没有给出错误,但我看不到创建的目录。此外,在目录中创建文件时,不会出现错误,因为没有此类文件或目录


是否有一种解决方法可以在驱动程序节点本地文件系统上创建文件?

由于您的错误分析,我假设这是在驱动程序范围的代码中运行的。如果使用
--deploy mode cluster
提交,则驱动程序将在任意节点上启动,这意味着您的目录将位于该节点。由于您的错误分析,它不会位于您从中执行
spark submit

提交
的节点上。我假设这是在驱动程序范围的代码中运行的。如果使用
--deploy mode cluster
提交,则驱动程序将在任意节点上启动,这意味着您的目录将位于该节点。它不会在您从中执行
spark submit

的节点上,正如@DominicEgger所说,文件夹将在任何随机节点中创建,并且可能尝试在文件夹中创建文件的代码正在其他节点中运行(没有代码,我们无法确定)。另外,为什么您要使用Spark编写本地文件,像HDFS或S3这样的分布式文件系统不是更好吗?正如@DominicEgger所说,文件夹将在任何随机节点中创建,并且可能尝试在文件夹中创建文件的代码正在其他节点中运行(如果没有代码,我们无法确定)。另外,为什么要使用Spark编写本地文件,像HDFS或S3这样的分布式文件系统不是更好吗?