Pyspark Systemml从/ tmp写入/读取

时间:2017-07-20 21:05:16

标签: caching pyspark tmp systemml

我通过pyspark运行带有systemml SVM组件的Flask应用程序。应用程序运行大约一天左右,然后只要使用SVM进行预测,它就会开始出错。引发的错误是:

Caused by: java.io.FileNotFoundException: /tmp/systemml/_p1_10.101.38.73/cache/cache000005058.dat (No such file or directory)

我相信正在发生的事情是systemml正在写入/ tmp /,然后最终被我正在使用的容器清除。然后,当它去预测时,它会尝试读取此文件并输出错误。我猜错了吗?解决这个问题的最佳方法是什么?有没有办法告诉systemml将其缓存写到哪里?

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:1)

是的,在SystemML master(以及即将发布的版本)中,您只需使用ml.setConfigProperty("localtmpdir", "/tmp2/systemml")来修改此缓存目录或任何其他配置。但是,SystemML 0.14中的Python MLContext API尚未公开。

作为一种变通方法,您也可以将自定义配置的SystemML-config.xml(请参阅systemml / conf for templates)放入已安装SystemML.jar的目录中。