title: Spark, Kryo Serialization Issue with ProtoBuf field
body: <p>I am seeing an error when running my spark job relating to Serialization of a protobuf field when transforming an RDD.</p>
  
  <p>com.esotericsoftware.kryo.KryoException: java.lang.UnsupportedOperationException
  Serialization trace:
  otherAuthors_ (com.thomsonreuters.kraken.medusa.dbor.proto.Book$DBBooks)</p>
  
  <p>The error seems to be created at this point:</p>
  
  <pre><code>val booksPerTier: Iterable[(TimeTier, RDD[DBBooks])] = allTiers.map {
        tier =&gt; (tier, books.filter(b =&gt; isInTier(endOfInterval, tier, b) &amp;&amp;     !isBookPublished(o)).mapPartitions( it =&gt;
        it.map{ord =&gt;
          (ord.getAuthor, ord.getPublisherName, getGenre(ord.getSourceCountry))}))
  }
  
  val averagesPerAuthor = booksPerTier.flatMap { case (tier, opt) =&gt;
    opt.map(o =&gt; (tier, o._1, PublisherCompanyComparison, o._3)).countByValue()
  }
  
  val averagesPerPublisher = booksPerTier.flatMap { case (tier, opt) =&gt;
    opt.map(o =&gt; (tier, o._1, PublisherComparison(o._2), o._3)).countByValue()
  }
  </code></pre>
  
  <p>The field is a list specified in the protobuf as the below:</p>
  
  <pre><code>otherAuthors_ = java.util.Collections.emptyList()
  </code></pre>
  
  <p>As you can see the code is not actually utilising that field from the Book Protobuf, although it still is being transmitted over the network.</p>
  
  <p>Has anyone got any advice on this?</p>