SciSpark:从本地文件夹而不是 HDFS 文件夹读取

SciSpark: Reading from local folder instead of HDFS folder

我使用的企业集群同时具有本地和 HDFS 文件系统。我需要处理的文件是 netcdf 格式,因此我使用 SciSpark 来加载。在没有 HDFS 的工作站上,代码从本地文件夹读取。但是,当存在 HDFS 文件夹时,它会尝试仅从 HDFS 读取。由于文件夹中存在的文件非常大(运行 累积到数百 GB 到 TB),我不得不将它们复制到 HDFS,这既低效又不方便。我用于加载文件的 (Scala) 代码如下所示:

val ncFilesRDD = sc.netcdfDFSFiles(ncDirectoryPath, List("x1", "x2", "x3"))
val ncFileCRDArrayRDD = ncFilesRDD.map(x => (x.variables.get("x1").get.data.toArray,
                             x.variables.get("x2").get.data.toArray,
                             x.variables.get("x3").get.data.toArray
                             ))

如果能帮助我修改代码,使我能够使用本地目录而不是 HDFS,我将不胜感激。

netcdfDFSFiles 的源代码注释文档说 that since the files are read from HDFS

不确定是否可以使用 netcdfDFSFiles 从本地读取。

但是还有另一个函数 netcdfFileList 说:The URI could be an OpenDapURL or a filesystem path.

因为它可以带 filesystem path ,你可以像

一样使用它
val ncFilesRDD = sc.netcdfFileList("file://your/path", List("x1", "x2", "x3"))

file:// 只会查找本地目录。