1. 程式人生 > >error: No implicit Ordering defined for Any

error: No implicit Ordering defined for Any

erro http 遇到 map max get ordering 解決方法 就是

scala中經常遇到最頭疼的問題,就是類型不匹配或者帶Any,Option的提示錯誤信息。

最近碰到的是取最大值,但是明明已經Long類型的,卻提示下面這個錯誤信息。

技術分享圖片

相關的源程序如下:

// 獲取offset
1. val beginOffsets = KafkaTool.getBeginningOffset(broker,group,topic).map(o=>{ (KafkaTool.getPath(baseOffsetPath,group,topic,o._1.partition) -> o._2) }).toMap
// 根據partitionPath獲取Map的值,這裏返回的是一個Option[Long]類型 2. val b_offset
= beginOffsets.get(partitionPath).getOrElse(0L)
// 比較最大值
3. val max
= Seq(b_offset,offset.toLong).max

這裏如果將上面的第2行添加返回類型,則會提示以下錯誤:

技術分享圖片

解決方法:

添加轉換_.toLong

 val b_offset = beginOffsets.get(partitionPath).map(_.toLong).getOrElse(0L)

error: No implicit Ordering defined for Any