[英]Flink DataSet.map get 'error: missing parameter type'
我剛剛開始學習 Scala 和 Flink。 當我嘗試按如下方式運行演示代碼時:
private def demoFunction[T <: Vector](dataSet: DataSet[T])
: DataSet[(linalg.Vector[Double], linalg.Vector[Double])] = {
val metrics = dataSet.map{
v => (1.0, v.asBreeze, linalg.Vector.zeros[Double](v.size))
}.reduce{
// reduce code..
}
// ...
}
我得到了錯誤信息:
Error: missing parameter type v => (1.0, v.asBreeze, linalg.Vector.zeros[Double](v.size))
依賴關系如下:
如果您有任何想法,請幫助。 提前致謝。
12 月 12 日更新。
我在v之后添加了一個:T后解決了這個問題,它似乎闡明了v是哪種類型。 但我仍然對此感到困惑。
val metrics = dataSet.map{
v:T => (1.0, v.asBreeze, linalg.Vector.zeros[Double](v.size))
}// ...
如果Vector
in T <: Vector
與linalg.Vector
相同,則它需要一個類型參數
trait Vector[@spec(Int, Double, Float) V] extends VectorLike[V, Vector[V]] {
...
所以它不能只是T <: Vector
,它應該是T <: Vector[...something...]
。
如果Vector
in T <: Vector
與linalg.Vector
不同,那么也許你import breeze.linalg._
並且Vector
被解析為linalg.Vector
。 所以使用完全限定名稱
private def demoFunction[T <: yourpackage.yoursubpackage.Vector] ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.