FileDataModel有替代品吗?

时间:2016-10-22 23:25:05

标签: java parsing hadoop mahout bigdata

我是mahout和大数据领域的新手。 一般来说,数据并不总是(长,长,双)。 那么FileDataModel有替代品吗?

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

2 个答案:

答案 0 :(得分:0)

  

用户和项目仅由框架中的ID值标识。   此外,此ID值必须为数字;它是一个Java long类型   API。 Preference对象或PreferenceArray对象封装   用户和首选项目(或项目和用户)之间的关系   更喜欢他们。)

我最近遇到了同样的问题。我有用户ID UUID类型。但我不得不添加带有数字用户ID和原始UUID用户ID的附加表。后来检查文档我发现了这个解释。根据 DataModel 的其他实现:

  

DataModel是有关用户首选项的信息的接口。一个   实现可以从任何源获取此数据,但数据库是   最有可能的来源。一定要用一个包装   ReloadFromJDBCDataModel获得良好的性能! Mahout提供   例如,MySQLJDBCDataModel从a访问首选项数据   数据库通过JDBC和MySQL。另一个存在于PostgreSQL。亨利马乌   还提供了FileDataModel,适用于小型应用程序。

答案 1 :(得分:0)

您可以从数据库构建DataModel。 这是PostgreSQL的一个例子:

Intercafe看起来像这样:

PostgreSQLJDBCDataModel(DataSource dataSource, String preferenceTable, String userIDColumn, String itemIDColumn, String preferenceColumn, String timestampColumn) 

Initalization:

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