我对mahout和这个大数据领域还很陌生。一般来说,数据并非总是以a(long,long,double)的形式出现。那么filedatamodel还有其他替代品吗?
DataModel model = new FileDataModel(new File("Ratings.csv"));
zlhcx6iw1#
您可以从数据库构建数据模型。以下是postgresql的一个示例:intercafe看起来是这样的:
PostgreSQLJDBCDataModel(DataSource dataSource, String preferenceTable, String userIDColumn, String itemIDColumn, String preferenceColumn, String timestampColumn)
初始化:
source = new PGPoolingDataSource(); source.setDataSourceName(properties.getProperty("DATABASE_NAME")); source.setServerName("127.0.0.1"); source.setDatabaseName(properties.getProperty("DATABASE_NAME")); source.setUser(properties.getProperty("DATABASE_USER")); source.setPassword(properties.getProperty("DATABASE_PASS")); source.setMaxConnections(50); DataModel model =new PostgreSQLJDBCDataModel( source, "mahout_teble", "user_id", "item_id", "preference", "timestamp" ) )
nxowjjhe2#
在框架中,用户和项仅由id值标识。此外,该id值必须是数字;通过api,它是一个java长类型。preference对象或preferencearray对象封装了用户和首选项(或项和用户更喜欢它们)之间的关系。我最近也面临同样的问题。我有用户id uuid类型。但是我不得不添加额外的带有数字用户id和原始uuid用户id的表。后来查看文档我发现了这个解释。根据数据模型的其他实现:数据模型是用户偏好信息的接口。一个实现可以从任何来源提取这些数据,但数据库是最有可能的来源。一定要用一个reloadfromjdbcdatamodel来 Package 它以获得良好的性能!mahout提供mysqljdbcdatamodel,例如,通过jdbc和mysql从数据库访问首选项数据。postgresql还有一个。mahout还提供了一个filedatamodel,这对于小型应用程序来说很好。
2条答案
按热度按时间zlhcx6iw1#
您可以从数据库构建数据模型。以下是postgresql的一个示例:
intercafe看起来是这样的:
初始化:
nxowjjhe2#
在框架中,用户和项仅由id值标识。此外,该id值必须是数字;通过api,它是一个java长类型。preference对象或preferencearray对象封装了用户和首选项(或项和用户更喜欢它们)之间的关系。
我最近也面临同样的问题。我有用户id uuid类型。但是我不得不添加额外的带有数字用户id和原始uuid用户id的表。后来查看文档我发现了这个解释。根据数据模型的其他实现:
数据模型是用户偏好信息的接口。一个实现可以从任何来源提取这些数据,但数据库是最有可能的来源。一定要用一个reloadfromjdbcdatamodel来 Package 它以获得良好的性能!mahout提供mysqljdbcdatamodel,例如,通过jdbc和mysql从数据库访问首选项数据。postgresql还有一个。mahout还提供了一个filedatamodel,这对于小型应用程序来说很好。