This is less of a question and more of a PSA.
It looks like there is some sort of binary incompatible change in the scala
standard library class `scala.collection.immutable.::` between point releases
of scala 2.11. CaseClassTypeInfo generated by the type information macro will
fail to deserialize in user code with parent first class loading if the
application is not compiled with 2.11.12. The following will work with Child
First Class Loading but fail with Parent First.
case class CustomClass(a: Int, b: Float)
class CustomMapFunction[T >: Null : TypeInformation] extends
MapFunction[String, T] {
override def map(value: String) = {
val typeInfo = implicitly[TypeInformation[T]]
// custom deserialization here
null
}
}
env
.fromCollection(Iterator[String](""))
.map(new CustomMapFunction[CustomClass])
.print()
[cid:[email protected]]<http://www.mediamath.com/>
Seth Wiesman | Software Engineer, Data
4 World Trade Center, 46th Floor, New York, NY 10007