Я в Spark, у меня есть RDD из файла Avro. Теперь я хочу сделать некоторые преобразования на этом RDD и сохранить его как файл Avro:
val job = new Job(new Configuration())
AvroJob.setOutputKeySchema(job, getOutputSchema(inputSchema))
rdd.map(elem => (new SparkAvroKey(doTransformation(elem._1)), elem._2))
.saveAsNewAPIHadoopFile(outputPath,
classOf[AvroKey[GenericRecord]],
classOf[org.apache.hadoop.io.NullWritable],
classOf[AvroKeyOutputFormat[GenericRecord]],
job.getConfiguration)
При запуске этого Spark жалуется, что Schema $recordSchema не является сериализуемым.
Если я раскомментирую вызов .map(и просто имею rdd.saveAsNewAPIHadoopFile), вызов будет успешным.
Что я здесь делаю неправильно?
Любая идея?