我使用FileDataModel作为 Mahout 中推荐的 DataModel。我首先生成基本文件(例如 prefs.txt)。不时会有一些更改,写入更新文件(prefs.1.txt,prefs.2.txt,...)。
我可以在将旧的更新文件加载到模型后删除它们吗?当我尝试删除它们(在 Windows 中)时,资源管理器说该文件当前由 Java 使用。为什么不允许删除原始文件?我相信数据现在存储在内存中,因此 Mahout 不再需要该文件。
我使用FileDataModel作为 Mahout 中推荐的 DataModel。我首先生成基本文件(例如 prefs.txt)。不时会有一些更改,写入更新文件(prefs.1.txt,prefs.2.txt,...)。
我可以在将旧的更新文件加载到模型后删除它们吗?当我尝试删除它们(在 Windows 中)时,资源管理器说该文件当前由 Java 使用。为什么不允许删除原始文件?我相信数据现在存储在内存中,因此 Mahout 不再需要该文件。
它不会重新读取旧文件,只会重新读取新的更新数据。但是,它确实希望“主”数据文件始终存在,因为它一直在寻找其最后修改时间。
一般的想法是,您有时会推送数据文件的完整副本,在此期间,更频繁地推送小型更新文件。如果您这样做,它应该可以按预期工作,并且,是的,您可以在读取更新文件后删除它们。
(当然,如果您重新启动服务器,它必须从最后一个主数据文件以及剩下的任何更新文件重新开始,这可能不完整或不一致。我只会在您推送新的主数据后删除更新数据文件。)
我不知道为什么您不能删除它们,因为它们从未保持打开状态。也许这是一个奇怪的 Windows 事情。