我有一个使用openJPA的数据模型,并且正在尝试集成一个使用Mahout的协同过滤系统。
如果这是一个愚蠢的问题,请原谅我,我刚开始研究Mahout。Mahout in Action的书已经在邮寄中,所以我很快就会赶上进度。
我的问题是如何将Mahout与现有的JPA模型集成。我是否需要向DataModel类提供一个CSV文件,或者我可以扩展DataModel以直接从我的现有数据源读取数据。我意识到从我的数据中生成一个CSV文件并不复杂,但这样做似乎是一个不必要的中间步骤。
我对“大数据集”世界非常陌生,请原谅我的无知。但是,大多数使用Mahout的系统都使用CSV数据集吗?这对我来说似乎有些奇怪。
谢谢。
编辑:
我在阅读Amazon提供的Mahout in Action预览。看起来你可以让Mahout直接与你的数据库接口,但这样做会以性能为代价。我迫不及待地想拿到这本书。关于这一点的任何评论或建议仍然非常受欢迎。
回答:
分布式/Hadoop相关的内容会从HDFS、Hbase、Cassandra或其他类似的地方读取数据。
非分布式的内容通常从文件中读取,并且有一些钩子可以从数据库/JDBC中读取。数据源并不重要,因为推荐模型无论如何都是要将数据加载到内存中的。
你可以编写自己的DataSource
,重用GenericDataModel
,或者修改其他实现。