Ответ 1
Я ничего не знаю об Amazon SQS, но "как я могу подавать поток Amazon SQS для создания структурированного потока с помощью pyspark". невозможно с любой внешней системой обмена сообщениями или источником данных с использованием Spark Structured Streaming (также называемых "Искрыми потоками").
Другое дело в Spark Structured Streaming, когда Spark вытягивает данные через равные промежутки времени (подобно тому, как работает Kafka Consumer API, где он извлекает данные, а не дается).
Другими словами, Spark "Потоки" - это еще один потребитель сообщений из "очереди" в Amazon SQS.
Всякий раз, когда меня просят интегрировать внешнюю систему с Spark "Потоки", я начинаю писать клиент для системы, используя API клиент/потребитель.
Как только у меня это будет, следующим шагом будет разработка настраиваемого источника потоковой передачи для внешней системы, например Amazon SQS, с использованием примера клиентского кода выше.
При разработке настраиваемого Source
потоковой передачи вам необходимо выполнить следующие действия:
-
Напишите класс Scala, который реализует свойство
Source
-
Зарегистрируйте класс Scala (пользовательский
Source
) с помощью Spark SQL, используя файлMETA-INF/services/org.apache.spark.sql.sources.DataSourceRegister
с полным именем класса или используйте полное имя класса вformat
Наличие пользовательского источника потоковой передачи - это двухчастная разработка с разработкой источника (и, возможно, его регистрация с помощью Spark SQL) и использование его в приложении Spark Structured Streaming (на Python) с помощью метода format
.