gpt4 book ai didi

java - Spark MLlib 模型预测的正确 Java RDD 结构?

转载 作者:行者123 更新时间:2023-12-02 05:47:33 28 4
gpt4 key购买 nike

我有一个训练有素的 MatrixFactorizationModel通过ALS.train(...)现在我尝试用它来预测一些收视率,如下所示:

JavaRDD<Rating> predictions = model.predict(usersProducts.rdd())

其中 usersProducts 是根据现有的评级数据集构建的,如下所示:

JavaPairRDD<Integer,Integer> usersProducts = testRatings.map(
new PairFunction<Rating, Integer, Integer>() {
public Tuple2<Integer, Integer> call(Rating r) throws Exception {
return new Tuple2<Integer, Integer>(r.user(), r.product());
}
}
);

问题是 model.predict(...) 不喜欢 usersProducts,声称该方法不接受 RDD Tuple2 类型的 code> 但是文档显示方法签名如下:

def predict(usersProducts: RDD[(Int, Int)]): RDD[Rating]

我错过了什么吗? JavaRDD 只是一个 Tuple2 元素列表,它与方法签名匹配,但编译时出现错误。

最佳答案

问题是对象应该是 int 而不是 Integer,因此适当的语法如下:

JavaPairRDD<Object,Object> usersProducts = testRatings.map(
new PairFunction<Rating, Object, Object>() {
public Tuple2<Object, Object> call(Rating r) throws Exception {
return new Tuple2<Object, Object>(r.user(), r.product());
}
}
);

所以我必须概括并使用 Object 来代替。然后 predict 方法应如下所示:

JavaRDD<Rating> predictions = model.predict(usersProducts.rdd()).toJavaRDD();

关于java - Spark MLlib 模型预测的正确 Java RDD 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23899585/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com