java—filedatamodel有替代品吗?

qyzbxkaa  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(321)

我对mahout和这个大数据领域还很陌生。一般来说,数据并非总是以a(long,long,double)的形式出现。那么filedatamodel还有其他替代品吗?

DataModel model = new FileDataModel(new File("Ratings.csv"));
zlhcx6iw

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"
                            )
                    )
nxowjjhe

nxowjjhe2#

在框架中,用户和项仅由id值标识。此外,该id值必须是数字;通过api,它是一个java长类型。preference对象或preferencearray对象封装了用户和首选项(或项和用户更喜欢它们)之间的关系。
我最近也面临同样的问题。我有用户id uuid类型。但是我不得不添加额外的带有数字用户id和原始uuid用户id的表。后来查看文档我发现了这个解释。根据数据模型的其他实现:
数据模型是用户偏好信息的接口。一个实现可以从任何来源提取这些数据,但数据库是最有可能的来源。一定要用一个reloadfromjdbcdatamodel来 Package 它以获得良好的性能!mahout提供mysqljdbcdatamodel,例如,通过jdbc和mysql从数据库访问首选项数据。postgresql还有一个。mahout还提供了一个filedatamodel,这对于小型应用程序来说很好。

相关问题