2016-10-22 12 views
0

私はmahoutとこの大きなデータの分野には初めてです。 一般的に、データは常に(ロング、ロング、ダブル)とはなりません。 FileDataModelに代わる方法はありますか?FileDataModelに代わるものはありますか?

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

答えて

0

ユーザとアイテムは、単にフレームワーク内のID値によって識別されます。 さらに、このID値は数値である必要があります。それは APIを介してJavaのロングタイプです。 PreferenceオブジェクトまたはPreferenceArrayオブジェクトは、ユーザーと優先項目(またはユーザーと が好む項目)の間の関係を でカプセル化します。

私は最近、同じ問題に直面しています。私はユーザーIDのUUIDタイプを持っていました。しかし、数値のユーザーIDとオリジナルのUUIDユーザーIDを持つテーブルを追加する必要がありました。後で私はこの説明を見つけたドキュメントをチェックします。 の他の実装に従ってたDataModel

AのDataModelは、ユーザの嗜好に関する情報へのインタフェースです。 実装では、このデータを任意のソースから取得できますが、データベースは である可能性が最も高いソースです。良いパフォーマンスを得るには、これを ReloadFromJDBCDataModelでラップしてください! Mahoutは、たとえば MySQLJDBCDataModelを提供して、 データベースからJDBCとMySQLを介して環境設定データにアクセスします。 PostgreSQLには別のものがあります。 Mahout にはFileDataModelも用意されています。これは小規模なアプリケーションに適しています。

0

データベースからDataModelを構築できます。

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

Initalization:

Intercafeは次のようになります。ここでは は、PostgreSQLのための一例である

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" 
          ) 
        ) 
関連する問題