我有一个带有spark MLlib-scala的应用程序,我想将我的数据分成3个方:训练,测试,验证。我的代码如下:
val training_RDD = Ratingfiles.filter(x => x._1 < 6)
.values
.cache()
val validation_RDD = Ratingfiles.filter(x => x._1 >= 6 && x._1 < 8)
.values
.cache()
当我使用sbt compile编译我的程序时,我有这个错误:
value _1 is not a member of org.apache.spark.mllib.recommendation.Rating
Spark-core:1.4.1 火花MLlib:2.0.1 Scala版本:2.11.1 版本:0.13.12
答案 0 :(得分:2)
正如编译器声称的那样,org.apache.spark.mllib.recommendation.Rating
没有名为_1
的成员(您可能会将其与元组混淆,成员为_1
,{{1}等等。)。
_2
有三名成员:
Rating
所以 - 如果您要按case class Rating @Since("0.8.0") (
@Since("0.8.0") user: Int,
@Since("0.8.0") product: Int,
@Since("0.8.0") rating: Double)
进行过滤,只需访问该成员而不是user
:
_1
答案 1 :(得分:0)
Spark Rating类有3个属性(自spark 0.8.0起):
如果您想获得第一个值,则需要调用user()
;第二个值product()
;第三个值rating()
来源:https://spark.apache.org/docs/1.4.0/api/java/org/apache/spark/mllib/recommendation/Rating.html