gpt4 book ai didi

apache-spark - 如何从 Amazon SQS 加载流数据?

转载 作者:行者123 更新时间:2023-12-03 23:55:34 25 4
gpt4 key购买 nike

我使用 Spark 2.2.0。

如何使用 pyspark 提供 Amazon SQS 流以激发结构化流?

This question 试图通过创建自定义接收器来回答非结构化流和 Scala 的问题。
pyspark 中是否有类似的可能?

spark.readStream \
.format("s3-sqs") \
.option("fileFormat", "json") \
.option("queueUrl", ...) \
.schema(...) \
.load()

根据 Databricks以上接收器可用于 S3-SQS 文件来源。但是,对于仅 SQS 来说,可能是一种方法。

我试着从 AWS-SQS-Receive_Message 理解接收消息。但是,如何直接将流发送到 Spark 流尚不清楚。

最佳答案

我对 Amazon SQS 一无所知,但是“如何使用 pyspark 提供 Amazon SQS 流以激发结构化流。”使用 Spark Structured Streaming(又名 Spark“Streams”)的任何外部消息传递系统或数据源都无法实现。

在 Spark Structured Streaming 中,当 Spark 定期提取数据时,情况正好相反(类似于 Kafka Consumer API 的工作方式,它在未提供数据的情况下提取数据)。

换句话说,Spark“Streams”只是来自 Amazon SQS 中“队列”的消息的另一个消费者。

每当我被要求将外部系统与 Spark“Streams”集成时,我都会开始使用客户端/消费者 API 为系统编写客户端。

一旦我有了它,下一步就是开发一个自定义流 Source对于外部系统,例如Amazon SQS,使用上面的示例客户端代码。

同时开发自定义流 Source您必须执行以下步骤:

  • 编写一个实现 Source 的 Scala 类性状
  • 使用 Source 向 Spark SQL 注册 Scala 类(自定义 META-INF/services/org.apache.spark.sql.sources.DataSourceRegister)具有完全限定类名的文件或在 format 中使用完全限定类名

  • 拥有自定义流源是一个两部分的开发,开发源(并可选择将其注册到 Spark SQL)并通过 format 在 Spark 结构化流应用程序(Python 中)中使用它方法。

    关于apache-spark - 如何从 Amazon SQS 加载流数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48007930/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com