mahout-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Trevor Grant <>
Subject [DISCUSS] More meaningful error when running on Spark 2.0
Date Mon, 14 Nov 2016 14:49:43 GMT

currently when running on Spark 2.0 the user will hit some sort of error,
one such error is:

java.util.NoSuchElementException: next on empty iterator
at scala.collection.Iterator$$anon$
at scala.collection.Iterator$$anon$
at scala.collection.IndexedSeqLike$
at scala.collection.IterableLike$class.head(IterableLike.scala:107)
at scala.collection.mutable.ArrayOps$ofRef.scala$collection$Ind
at scala.collection.IndexedSeqOptimized$class.head(IndexedSeqOp
at scala.collection.mutable.ArrayOps$ofRef.head(ArrayOps.scala:186)
at org.apache.mahout.math.scalabindings.package$$anonfun$1.appl
at org.apache.mahout.math.scalabindings.package$$anonfun$1.appl
at scala.collection.TraversableLike$$anonfun$map$1.apply(Traver
at scala.collection.TraversableLike$$anonfun$map$1.apply(Traver
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSe
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:35)
at scala.collection.TraversableLike$
at org.apache.mahout.math.scalabindings.package$.dense(package.scala:133)
at org.apache.mahout.sparkbindings.SparkEngine$.drmSampleKRows(
at org.apache.mahout.math.drm.package$.drmSampleKRows(package.scala:149)
at org.apache.mahout.math.drm.package$.drmSampleToTSV(package.scala:165)
... 58 elided

With the recent Zeppelin-Mahout integration, there are going to be a lot of
users unknowingly attempting to run on Mahout on Spark 2.0.  I think it
would be simple to implement yet save a lot of time on the Zeppelin and
Mahout mailing lists to do something like:

if sc.version > 1.6.2 then:
   error("Spark versions ${sc.verion} isn't supported.  Please see
MAHOUT-... (appropriate jira info)")

I'd like to put something together and, depending on how many issues people
have on Zeppelin list, be prepared to do a hotfix on 0.12.2 if it becomes
prudent.  Everyone always complaining that Zeppelin doesn't work because of
some mystical error, is bad pr.  It DOES say in the notebook and elsewhere
that we're not 2.0 compliant, however one of the advantages/drawbacks of
Zeppelin is that without having to really know what you're doing you can
get a functional local cluster of Flink, Spark, etc. all going.

So we easily could have a space where someone read none of the docs, and is
whining.  Surely few if any would ever do such a thing, but still I think a
prudent fix to have in the back pocket.


Trevor Grant
Data Scientist

*"Fortunate is he, who is able to know the causes of things."  -Virgil*

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message