Scala 将字符串转换为Apache Avro GenericRecord

Scala 将字符串转换为Apache Avro GenericRecord,scala,apache-kafka,avro,Scala,Apache Kafka,Avro,有人能就如何将字符串转换为通用记录给出建议吗?我想将我的记录转换成avro,并将它们转换成卡夫卡主题 我以前将其作为字符串(我将其替换为genericord) 我还有一个apply方法,其中包含一个迭代器。 它在字符串上迭代并将值添加到元组中 最后,我将数据发送到一个主题: results变量是一个字符串,但我添加了“asInstanceOf” 这是我的迭代器: iterator.foreach { tuple => val (keyinfo, info, Worked(out

有人能就如何将
字符串
转换为
通用记录
给出建议吗?我想将我的记录转换成avro,并将它们转换成卡夫卡主题

我以前将其作为
字符串
(我将其替换为
genericord

我还有一个
apply
方法,其中包含一个迭代器。 它在字符串上迭代并将值添加到元组中

最后,我将数据发送到一个主题:

results变量是一个
字符串
,但我添加了“asInstanceOf”

这是我的迭代器:

iterator.foreach { tuple =>
      val (keyinfo, info, Worked(outinfo, _)) = tuple
      val (key, results) = keyResultToString(keyinfo, info, outinfo)
      result.send(new ProducerRecord[String,GenericRecord](topic,key,results.asInstanceOf[GenericRecord]))
    }

当我将GenericRecord替换回字符串时,一切都正常。但是如果我想把它转换成一个GenericRecord,就不会了。这里有几件事不清楚:你过去常常把字符串放在你的主题中,你想把用Avro序列化的“things”放进去?你是什么卡夫卡制作人?你是说这些信息吗?“bootstrap.servers”->servers,“security.protocol”->prot,“max.request.size”->maxMessageSize,“key.serializer”->stringSerializer,“value.serializer”->stringkafkavroserializer,“schema.registry.base.url”->schemaURLI希望将数据转换为二进制avro数据类型。我以字符串形式接收数据。我使用以下序列化程序:“org.apache.kafka.common.serialization.StringSerializer”和“io.confluent.kafka.serializers.KafkaAvroSerializer”您看过这个示例吗?(虽然是Java语言,但将其移植到Scala应该很容易)是的,我看到了这个示例。但我不知道如何正确地将存储字符串中的值的元组转换为GenericRecords。这里有几点不清楚:您过去常常将字符串放入主题中,而您想将Avro序列化的“things”放入其中?你是什么卡夫卡制作人?你是说这些信息吗?“bootstrap.servers”->servers,“security.protocol”->prot,“max.request.size”->maxMessageSize,“key.serializer”->stringSerializer,“value.serializer”->stringkafkavroserializer,“schema.registry.base.url”->schemaURLI希望将数据转换为二进制avro数据类型。我以字符串形式接收数据。我使用以下序列化程序:“org.apache.kafka.common.serialization.StringSerializer”和“io.confluent.kafka.serializers.KafkaAvroSerializer”您看过这个示例吗?(虽然是Java语言,但将其移植到Scala应该很容易)是的,我看到了这个示例。但我不知道如何正确地将存储字符串中的值的元组转换为GenericRecords
result.send(new ProducerRecord[String,GenericRecord](topic,key,results.asInstanceOf[GenericRecord]))
iterator.foreach { tuple =>
      val (keyinfo, info, Worked(outinfo, _)) = tuple
      val (key, results) = keyResultToString(keyinfo, info, outinfo)
      result.send(new ProducerRecord[String,GenericRecord](topic,key,results.asInstanceOf[GenericRecord]))
    }