scala - 在 Databricks 中调用一次 Trigger 以处理 Kinesis Stream

标签 scala databricks spark-structured-streaming amazon-kinesis aws-databricks

我正在寻找一种方法来触发我的 Databricks 笔记本一次以处理 Kinesis Stream 并使用以下模式

 import org.apache.spark.sql.streaming.Trigger

// Load your Streaming DataFrame
   val sdf = spark.readStream.format("json").schema(my_schema).load("/in/path")
// Perform transformations and then write…
   sdf.writeStream.trigger(Trigger.Once).format("delta").start("/out/path")
看起来 AWS Kinesis 不可能实现,这也是 Databricks 文档所建议的。我的问题是我们还能做些什么来实现这一目标?

最佳答案

正如您在问题中提到的 trigger once isn't supported for Kinesis .
但是您可以通过在图片中添加 Kinesis Data Firehose 来实现您所需要的。将写入数据 from Kinesis into S3 bucket (您可以 select format that you need ,例如 Parquet、ORC,或仅保留 JSON),然后您可以将流作业指向给定的存储桶,并对其使用 Trigger.Once,因为它是一个普通的流源(为了效率,它是最好使用 Databricks 上提供的 Auto Loader)。此外,为了控制成本,您可以为 S3 目标设置保留策略,以便在一段时间(例如 1 周或一个月)后删除或存档文件。

关于scala - 在 Databricks 中调用一次 Trigger 以处理 Kinesis Stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65281478/

相关文章:

Scala Play 框架初学者 - 'Action Not Found'

string - Scala 大文本文件

matplotlib - 无法在 Databricks 上运行 Pandas 分析

amazon-web-services - Amazon EMR 和 Spark 流

scala - 是否可以为顶点中的标签建立索引

json - 如何编写惯用的 Scala 包装类来表示非惯用的 JSON

Azure 即用即付典型定价

apache-spark - 无法在 databricks 上运行 johnsnow OCR 笔记本

scala - Spark Structured Streaming with Kafka - 如何重新分区数据并在工作节点之间分配处理

scala - 如何在 Spark 2.3.0 UDF 中为每个工作人员构建并保留一个引用对象?