Обрабатывает ли потоковая передача Spark каждое JSON-событие по отдельности при чтении из Kafka? - PullRequest
0 голосов
/ 30 мая 2018

Я хочу использовать потоковую передачу Spark для чтения сообщений из одной темы Kafka в формате JSON, однако не все события имеют сходную схему.Если это возможно, как лучше всего проверить схему каждого события и обработать ее соответствующим образом?

Можно ли сгруппировать в памяти несколько групп, каждая из которых состоит из группы похожих событий схемы, а затем обработать каждую группу как массив?

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Форматы объектов, такие как parquet и avro, хороши по этой причине, поскольку схема доступна в заголовке.Если вам абсолютно необходимо использовать JSON, вы можете делать то, что сказали, и использовать групповые ключи при приведении к нужному объекту.Если вы используете большие объекты JSON, то вы увидите снижение производительности, так как весь «файл» JSON должен быть проанализирован, прежде чем может произойти разрешение любого объекта.

0 голосов
/ 30 мая 2018

Боюсь, ты не сможешь.Вам нужно каким-то образом декодировать ваше сообщение JSON, чтобы идентифицировать схему, и это будет сделано в вашем коде Spark.Однако вы можете попытаться заполнить ключ сообщения Kafka другим значением для схемы и получить назначенные разделы Spark для ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...