簡體   English   中英

斯卡拉<console> :24: 錯誤: 找不到微風.storage.DefaultArrayValue [Any] 類型的證據參數的隱式值

[英]Scala <console>:24: error: could not find implicit value for evidence parameter of type breeze.storage.DefaultArrayValue[Any]

我正在使用 Spark 和 Scala(兩者都是新手)。 我有這個代碼:

val indices: List[Int] = List()
val featValues: List[Double] = List()
...
val vector = SparseVector(100000, indices.toArray, featValues.toArray)

但我不斷收到此錯誤:

<console>:24: error: could not find implicit value for evidence parameter of type breeze.storage.DefaultArrayValue[Any]
                      val vector = SparseVector(100000, indices.toArray, featValues.toArray)

我相信只有熟悉 Scala 的人可以幫助我。 SparseVector 的文檔是:

http://people.apache.org/~pwendell/catalyst-docs/api/mllib/index.html#org.apache.spark.mllib.linalg.SparseVector

我搜索了谷歌,發現這個: 找不到類型 scala.reflect.ClassManifest[T] 的證據參數的隱式值

但我不知道如何解釋這些答案。

編輯:我實際上是從微風導入另一個 SparseVector,而我應該從 org.apache.spark.mllib.linalg.SparseVector 導入。

我再次啟動交互式shell並輸入: import org.apache.spark.mllib.linalg.SparseVector

現在我收到error: not found: value SparseVector重復上述相同代碼后的error: not found: value SparseVector

EDIT2:我應該清楚“...”暗示我正在初始化列表。

看起來您尚未初始化索引和值,因此 Scala 在某些時候會嘗試使用它們的默認值。 同樣根據您鏈接的文檔,您需要使用 new 創建 SparseVector (也許沒有伴隨對象?)

我無法測試,但我建議嘗試以下操作:

 val indices = Array(1,2,3) // indices is expected to be an array of Int
 val values = Array(1.0d,2.0d,3.0d) // values is an array of doubles       
 val v2 = new SparseVector(3, indices, values)

這行得通嗎? 如果是,則問題可能出在您在val featValues之后省略的代碼部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM