Hello -

Facing an issue with avro serialization with Scala case classes generated
through avrohugger ..
Scala case classes generated by avrohugger has the avro schema in the
companion object. This is a sample generated class (details elided) ..

case class Data(var id: Int, var name: String) extends
org.apache.avro.specific.SpecificRecordBase {
  def this() = this(0, "")
  def get(field$: Int): AnyRef = {
    //..
  }
  def put(field$: Int, value: Any): Unit = {
    //..
  }
  def getSchema(): org.apache.avro.Schema = Data.SCHEMA$
}
object Data {
  val SCHEMA$ = new
org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"Data\",\"namespace\":\"pipelines.flink.avro\",\"fields\":[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]}")
}

Flink 1.8 avro serializer fails on this as Avro looks for a SCHEMA$
property in the class & is unable 2 use Java reflection 2 identify the
SCHEMA$ in the companion object. The exception that I get is the following
..

java.lang.RuntimeException: Serializing the source elements failed:
> avro.shaded.com.google.common.util.concurrent.UncheckedExecutionException:
> org.apache.avro.AvroRuntimeException: Not a Specific class: class
> pipelines.flink.avro.Data


Any help or workaround will be appreciated ..

regards.

-- 
Debasish Ghosh
http://manning.com/ghosh2
http://manning.com/ghosh

Twttr: @debasishg
Blog: http://debasishg.blogspot.com
Code: http://github.com/debasishg

Reply via email to