BTW - Externalizable vs Serializable I think is largely a matter of preference. In Spark, we have chosen to use Externalizable in other places when custom serialization is needed.