如何通过Spark Streaming从二进制数据中找出Avro架构?

时间:2017-01-16 13:11:13

标签: scala apache-spark apache-kafka spark-streaming avro

我建立了一个Spark-Streaming管道,通过Kafka获取测量数据。该数据使用Avro序列化。数据可以有两种类型 - EquidistantDataDiscreteData。我使用avdl文件和sbt-avrohugger插件创建了这些文件。我使用生成从SpecificRecord继承的Scala案例类的变体。

在我的接收应用程序中,我可以通过查询EquidistantData.SCHEMA$DiscreteData.SCHEMA$来获取这两个架构。

现在,我的Kafka流为我提供了值类为Array[Byte]的RDD。到目前为止一切都很好。

如何从字节数组中找出序列化时使用的架构,即是否使用EquidistantData.SCHEMA$DiscreteData.SCHEMA$

我想在邮件密钥中发送适当的信息。目前,我不使用消息密钥。这是一种可行的方法,还是可以从我收到的序列化字节数组中以某种方式获取模式?

跟进:

另一种可能性是对离散和等距数据使用单独的主题。这可行吗?

0 个答案:

没有答案