2017-08-01 116 views
0

我用pysparkpyspark MLUtils saveaslibsvm只有在_temporary保存和不保存在主

并使用MLUtils saveaslibsvm保存一个RDD上labledpoints

它的工作原理,但会保留在/ _temporary在所有工作节点的文件/尽可能多的文件。

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

这可能吗?

编辑 ++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++ 无论我做什么,我都无法使用MLUtils.loadaslibsvm()从相同的位置加载libsvm数据我用来保存它的路径。写这个文件可能有问题吗?

回答

1

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

这就是为什么读写应该使用可以从每台机器上访问的存储来执行,如分布式文件系统,对象存储或数据库。在本地文件系统中使用Spark的应用程序非常有限。

对于测试,您可以使用网络文件系统(这是很容易部署),但它不会在生产中很好地工作。