Как использовать Spark-фильтр в Spark Streaming, подключенном к источнику Кафки? - PullRequest
0 голосов
/ 22 ноября 2018

У меня проблема с разработкой эффективного конвейера Spark для варианта использования ETL.Это приложение Spark Streaming, которое связано с темой Kafka в его источнике.Теперь фактические данные не отправляются через Kafka, а вместо этого находятся на HDFS или на сервере NoSQL.Все, что отправляется через Kafka, - это json-сообщение, предоставляющее контекстную информацию (например, местоположение данных для обработки).

Одно из направлений - реализовать карту или flatMap, в которых открыто соединение с бэкендом хранилища.выполните запрос и выдайте (как генератор) данные обратно в информационный фрейм Spark.Однако у меня возникают проблемы с этим подходом, потому что:

1) При возврате данных обратно в фрейм данных, контекстная запись (полученная от kafka) теряется, если запись / детали не склеены в возвращенных записях, которыевызывает огромные накладные расходы, так как мы говорим о данных временных рядов.

2) Во-вторых, в Spark вы должны на самом деле запрашивать данные с помощью API источников данных, чтобы вы получили сокращение разделов и поддержку опускания фильтра Spark (илирасширение источника данных).Но я не понимаю, как я мог бы использовать этот метод, если у меня уже есть DStream, подключенный к Kafka?Должен ли я foreachBatch у водителя создать новый DStream?

Любые советы или мысли приветствуются.

Пол

...