import org.apache.spark.sql.avro.{SchemaConverters, AvroSerializer}
import org.apache.avro.Schema
import org.apache.avro.generic.{GenericRecord, GenericData}
val avroSchema: Schema = SchemaConverters.toAvroType(df.schema)
val serializedData = df.rdd.map(row => {
val genericRecord = new GenericData.Record(avroSchema)
for (i <- 0 until row.length) {
genericRecord.put(i, row(i))
}
AvroSerializer.serialize(genericRecord, avroSchema)
})