spark mlib:要求失败:索引0跟随0并且不是严格递增

问题描述 投票:0回答:1

使用我的数据集训练逻辑回归模型时出现以下错误:

Caused by: java.lang.IllegalArgumentException: requirement failed: Index 0 follows 0 and is not strictly increasing
    at scala.Predef$.require(Predef.scala:281)
    at org.apache.spark.ml.linalg.SparseVector.$anonfun$new$5(Vectors.scala:629)
    at scala.runtime.java8.JFunction1$mcVI$sp.apply(JFunction1$mcVI$sp.java:23)
    at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
    at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
    at scala.collection.mutable.ArrayOps$ofInt.foreach(ArrayOps.scala:246)
    at org.apache.spark.ml.linalg.SparseVector.<init>(Vectors.scala:628)
    at org.apache.spark.ml.linalg.VectorUDT.deserialize(VectorUDT.scala:64)
    at org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificSafeProjection.apply(Unknown Source)
    at org.apache.spark.sql.catalyst.encoders.ExpressionEncoder$Deserializer.apply(ExpressionEncoder.scala:168)
    ... 38 more

我不确定这个错误表明什么以及我应该在哪里调试。熟悉 Spark MLlib 的人可以给我一些指导吗?预先感谢!

apache-spark apache-spark-mllib apache-spark-ml
1个回答
0
投票

您正在构造一个稀疏向量,并且

(index, value)
元组列表包含重复的 0 索引,例如:

Vectors.sparse(2, Seq((0, 1d), (0, 1d)))

Spark 曾经让这种情况溜走,但自从最近发布以来似乎不再这样了。

我也遇到了同样的问题。事实证明这是一个有用的例外,因为它突出显示了一个错误,其中我的模型的两个功能在其值中使用相同的前缀,因此出现了重复索引。

© www.soinside.com 2019 - 2024. All rights reserved.