У меня есть приложение Scala Spark, в котором мне нужно переключаться между потоковой передачей от kafka vs kinesis в зависимости от конфигурации приложения.
Оба API-интерфейса spark для потоковой передачи kafka (spark-streaming-kafka-0-10_2.11) и kinesis streaming (spark-streaming-kinesis-asl_2.11) возвращает InputDStream
при создании потока, но типы значений различны.
Создание потока Кафки возвращает InputDStream[ConsumerRecord[String, String]]
, тогда как, Поток Kinesis создает возврат InputDStream[Array[Byte]]
Есть ли API
, который возвращает универсальный InputDStream
независимо от kafka или kinesis, так что моя обработка потока может иметь универсальную реализацию вместо необходимости писать отдельнокод для kafka и kinesis.
Я попытался назначить оба потока для InputDStream[Any]
, но это не сработало.
Оцените любую идею о том, как это можно сделать.