- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个功能正常的推荐系统,我想让它变得更快,所以我决定将它直接连接到我的数据库。然而,每次我尝试向人们推荐东西时,我都会收到一个错误:setFetchSize() is not >=0
。这是我的代码:
MySQLJDBCDataModel dataModel = null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
net.sourceforge.jtds.jdbcx.JtdsDataSource ds = new net.sourceforge.jtds.jdbcx.JtdsDataSource();
ds.setServerName("xxxxx");
ds.setDatabaseName("xxxxx");
ds.setUser("xxxxx");
ds.setPassword(xxxxx);
ds.setDomain("xxxxx");
//net.sourceforge.jtds.jdbc.JtdsStatement.setFetchSize(10);
dataModel = new MySQLJDBCDataModel(ds, "test_tbl", "user_id", "item_id", "preference", null);
} catch (Exception e) {
System.out.println("can't connect");
}
ArrayList<String> itemList=new ArrayList<String>();
ItemSimilarity similarity = new FileItemSimilarity(new File("output/part-r-00000"));
ItemBasedRecommender recommender = new GenericItemBasedRecommender(dataModel, similarity);
//List<RecommendedItem> recommendedItems=recommender.recommend(userid,10);
Recommender cachingRecommender = new CachingRecommender(recommender);
List<userRecData> allUserRecs = new ArrayList<userRecData>();
List<RecommendedItem> uRec=cachingRecommender.recommend(userobjectid,10);
我收到错误:
java.sql.SQLException: The setFetchSize method requires a parameter value >= 0.
at net.sourceforge.jtds.jdbc.JtdsStatement.setFetchSize(JtdsStatement.java:998)
at org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.getNumThings(AbstractJDBCDataModel.java:584)
at org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.getNumUsers(AbstractJDBCDataModel.java:560)
at org.apache.mahout.cf.taste.impl.recommender.CachingRecommender.<init>(CachingRecommender.java:63)
at mia.recommender.RecommenderIntro.getRecommendations(RecommenderIntro.java:79)
at mia.recommender.RecommenderIntro.main(RecommenderIntro.java:43)
它在cachingRecommender
上失败,或者如果我把它去掉,在recommnder.recommend
上失败我认为 Mahout 自动将获取大小设置为 1000
最佳答案
您正在使用MySQLJDBCDataModel
,但您的数据库是SQL Server。 MySQL 实现禁用负值的获取大小,因为它的驱动程序需要这样做。您需要自定义 AbstractJDBCDataModel 以与 SQL Server 配合使用 - 例如,不重写 getFetchSize()
。
关于java - 如何修复使用 Mahout 在 SetFetchSize() 上失败的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11633771/
我看到很多 JDBC/MySQL 的“最佳实践”指南告诉我指定 setFetchSize()。 但是,我不知道何时指定,以及指定什么(语句、结果集)。 Statement.setFetchSize()
我看到很多 JDBC/MySQL 的“最佳实践”指南告诉我指定 setFetchSize()。 但是,我不知道何时指定,以及指定什么(语句、结果集)。 Statement.setFetchSize()
我想在UI上实现分页,所以我这样设置fetchSize: boundStatement.setFetchSize(20) 但是 setFetchSize() 不被接受。我的表现在有 400 行,并且检
我正在使用下面的代码 st = connection.createStatement( ResultSet.CONCUR_READ_ONLY, Res
我想实现 this我的自定义 JDBC 驱动程序中的方法功能。我应该使用 JDBC 中的哪个方法来设置 MaxResults? 如果我的查询结果是1000行,我设置了setFetchSize=100的
我正在致力于性能改进。我们使用 Hibernate Criteria 和命名查询从数据库检索数据。在我们的应用程序中,我们从数据库检索更多行并执行一些 Java 逻辑,因此我想一次从数据库获取更多行,
我正在尝试限制我的选择查询的提取大小。不幸的是,JTDS MS SQL 驱动程序仍然读取所有行。 我不想要限制或偏移选择。我只想保存我的内存,这样我就需要更少的 RAM。我不需要 setMaxRows
这个问题已经有答案了: What is difference between setMaxResults and setFetchSize in org.hibernate.Query? (3 个回答
最初,我问this问题 我通过将 fetchSize 设置为 Integer.MIN_VALUE 来解决这个问题,但我对此有一些疑问 当我将 fetchSize 设置为 10 或其他正整数时它不起作用
我有一个功能正常的推荐系统,我想让它变得更快,所以我决定将它直接连接到我的数据库。然而,每次我尝试向人们推荐东西时,我都会收到一个错误:setFetchSize() is not >=0。这是我的代码
Mysql文档说 When using versions of the JDBC driver earlier than 3.2.1, and connected to server versions
我正在对 Hive 运行查询。相同的查询应该适用于其他 JDBC 驱动程序,即其他关系数据库。 我不能使用 Statement.setFetchSize 方法,因为它在 Hive JDBC 0.13.
org.hibernate.Query 中的 setMaxResults 和 setFetchSize 有什么区别?我就是不明白=) 最佳答案 setMaxResults 与 SQL 中的 LIMIT
我有一张非常大的表,每天有几百万条记录,每天结束时,我都会提取前一天的所有记录。我这样做是这样的: String SQL = "select col1, col2, coln from mytabl
我正在使用 hibernate 。我需要获取大约 1000000 条记录,这会导致超时异常。因此,我对 6000 条记录使用 setfetchsize,以便它将操作分配到多个事务中,每个事务处理 60
我是一名优秀的程序员,十分优秀!