我有一个Scala Spark应用程序,需要根据应用程序配置在从kafka到kinesis的流之间进行切换。
用于kafka流(spark-streaming-kafka-0-10_2.11)和kinesis流(spark-streaming-kinesis-asl_2.11)的spark API均在创建流时返回InputDStream
,但值类型不同。
创建卡夫卡流返回InputDStream[ConsumerRecord[String, String]]
,
而Kinesis流创建返回InputDStream[Array[Byte]]
是否有任何API
返回通用InputDStream
,而与kafka或kinesis无关,因此我的流处理可以具有通用实现,而不必为kafka和kinesis编写单独的代码。 / p>
我尝试将两个流都分配给一个InputDStream[Any]
,但这没用。
赞赏有关如何完成此操作的任何想法。