Scala 在数据块中调用触发器一次以处理运动流

Scala 在数据块中调用触发器一次以处理运动流,scala,databricks,spark-structured-streaming,amazon-kinesis,aws-databricks,Scala,Databricks,Spark Structured Streaming,Amazon Kinesis,Aws Databricks,我正在寻找一种方法来触发我的Databricks笔记本一次来处理运动流,并使用以下模式 import org.apache.spark.sql.streaming.Trigger // Load your Streaming DataFrame val sdf = spark.readStream.format("json").schema(my_schema).load("/in/path") // Perform transformation

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

 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动觉是不可能的,这也是Databricks文档所建议的。我的问题是,我们还能做些什么来实现这一目标?

正如你在问题中提到的那样


但是,您可以通过向图片中添加将写入数据的数据来实现所需的功能(您可以使用拼花、ORC或JSON),然后您可以将流作业指向给定的bucket,并使用触发器。一次,因为它是一个正常的流源(为了提高效率,最好使用Databricks上提供的数据源)。此外,为了控制成本,您可以为S3目的地设置保留策略,以便在一段时间后(如1周或1个月)删除或归档文件。

这是出于节约成本目的而使用“触发一次”的最佳/唯一解决方案吗?我们不希望群集全天候运行,希望将作业安排在作业群集上运行。这是否也意味着Azure事件中心比AWS Kinesis更好,因为事件中心支持Trigger.Once选项。取消作业,下次使用“at_timestamp”选项开始,怎么样?其他人在做什么?如果Kinesis是他们的唯一来源并且他们没有使用消防软管将其推送到S3存储桶,他们是否会离开集群并运行?一次有这么多问题:-)
at_timestamp
不会有帮助-它只在第一次运行时使用,然后通过检查点处理所有事情。但是,是的,停止流并稍后再次启动可能会起作用(类似于下面的答案:)其他人所做的取决于他们的需求。需要实时性的人可以全天候运行群集。我看到有人不需要这个——用消防水龙带。EventHubs有其自身的局限性,我通过实验发现,对于EventHubs,Kafka接口比本机协议工作得更好。将其标记为已回答。需要检查自动加载器跳跳虎。虽然有一次。按照建议检查自动加载器,但有以下问题。给我一些关于增量表事务保证的错误