pyspark MLUtils saveaslibsvm 仅在 _temporary 下保存而不在 master 上保存

pyspark MLUtils saveaslibsvm saving only under _temporary and not saving on master

我使用 pyspark

并使用 MLUtils saveaslibsvm 在标记点上保存 RDD

它可以工作,但会在 /_temporary/ 下的所有工作节点中保留与文件一样多的文件。

没有错误,我想将文件保存在正确的文件夹中,最好将所有输出保存到一个 libsvm 文件中,该文件将位于节点或主服务器上。

这可能吗?

编辑 ++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++ 无论我做什么,我都无法使用 MLUtils.loadaslibsvm() 从我用来保存它的同一路径加载 libsvm 数据。也许写文件有问题?

这是 Spark 的正常行为。所有写入和读取活动都直接从工作节点并行执行,数据不会传入或传出驱动程序节点。

这就是为什么读取和写入应该使用可以从每台机器访问的存储来执行的原因,例如分布式文件系统、对象存储或数据库。将 Spark 与本地文件系统一起使用的应用非常有限。

对于测试,您可以使用网络文件系统(它很容易部署),但在生产环境中效果不佳。