Как я могу передавать данные из темы Google PubSub в PySpark (в Google Cloud) - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть поток данных в тему в Google PubSub.Я вижу эти данные, используя простой код Python:

...
def callback(message):
    print(datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") + ": message = '" + message.data + "'")
    message.ack()

future = subscriber.subscribe(subscription_name, callback)
future.result()

Приведенный выше код Python получает данные из темы Google PubSub (с подписчиком subscriber_name ) и записывает их в терминал, как и ожидалось,Я хотел бы передать те же данные из темы в PySpark (RDD или dataframe), чтобы я мог выполнять другие потоковые преобразования, такие как оконные операции и агрегации в PySpark, как описано здесь: https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html.

Эта ссылка имеетдокументация для чтения других потоковых источников (например, Kafka), но не Google PubSub.Есть ли способ потоковой передачи из Google PubSub в PySpark?

Ответы [ 2 ]

0 голосов
/ 13 апреля 2019

Вы можете использовать Apache Beam: https://beam.apache.org/

В Apache Beam есть поддержка Pyhton для Cloud Pub / Sub: https://beam.apache.org/documentation/io/built-in/

Существует Python SDK: https://beam.apache.org/documentation/sdks/python/

И поддержка Spark: https://beam.apache.org/documentation/runners/capability-matrix/

0 голосов
/ 18 сентября 2018

Вы можете использовать Apache Bahir , который предоставляет расширения для Apache Spark, включая соединитель для Google Cloud Pub / Sub.

Вы можете найти пример из Google Cloud Platform , который с помощью Spark в Kubernetes вычисляет количество слов из потока данных, полученных из темы Google Cloud PubSub, и записывает результат в корзину Google Cloud Storage (GCS).

Есть другой пример , который использует DStream для развертывания потокового приложения Apache Spark в Cloud Dataproc и обработки сообщений из Cloud Pub / Sub.

...