繁体   English   中英

如何将数据从 Google PubSub 主题流式传输到 PySpark(在 Google Cloud 上)

[英]How can I stream data from a Google PubSub topic into PySpark (on Google Cloud)

我将数据流式传输到 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 或数据帧),这样我就可以进行其他流式传输转换,例如 PySpark 中的窗口化和聚合,如下所述: https ://spark.apache.org/docs/ 最新/结构化流式编程指南.html

该链接包含用于阅读其他流媒体资源(例如 Kafka)的文档,但不包含 Google PubSub。 有没有办法从 Google PubSub 流式传输到 PySpark?

您可以使用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/

您可以使用Apache Bahir ,它提供了Apache Spark的扩展,包括Google Cloud Pub / Sub的连接器。

您可以从Google Cloud Platform中找到一个示例,该示例在Kubernetes上使用Spark计算从Google Cloud PubSub主题接收的数据流中的字数,并将结果写入Google Cloud Storage(GCS)存储桶。

还有另一个示例 ,该示例使用DStream在Cloud Dataproc上部署Apache Spark流应用程序并处理来自Cloud Pub / Sub的消息。

我相信你可以使用这个: https ://cloud.google.com/pubsub/lite/docs/samples/pubsublite-spark-streaming-from-pubsublite

您创建一个订阅并放入 spark 流中的选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM