Производительность Mahout - медленная загрузка из базы данных - PullRequest
0 голосов
/ 01 марта 2019

Следующая рекомендация использует очень большую базу данных клиентов (миллионы записей) и занимает слишком много времени для загрузки в файл.

public static void main(String[] args) throws Exception {

    MysqlDataSource dataSource = new MysqlDataSource ();

    dataSource.setServerName("localhost");
    dataSource.setUser("root");
    dataSource.setPassword("");
    dataSource.setDatabaseName("db_recommend");

    ReloadFromJDBCDataModel model = new ReloadFromJDBCDataModel(new MySQLBooleanPrefJDBCDataModel(dataSource, "table_recommend", "cust_id","item_id" , null));


    UserSimilarity similarity = new LogLikelihoodSimilarity(model);

    UserNeighborhood neighborhood =  new NearestNUserNeighborhood(2, similarity, model);  

    Recommender recommender = new GenericBooleanPrefUserBasedRecommender(model, neighborhood, similarity); 
    Recommender cachingrecommender = new CachingRecommender(recommender);

    cachingrecommender.refresh(null);

    List<RecommendedItem>recommendations =  cachingrecommender.recommend(10001, 3);

    for (RecommendedItem recommendation : recommendations) {
        System.out.println(recommendation);
    }

}

Проблема в том, что для выработки рекомендации требуется около двух минут.Это очень медленно, если развертывается в веб-приложении.Любое предложение о том, как заставить его работать быстрее?

...