【发布时间】:2021-09-20 00:13:41
【问题描述】:
【问题讨论】:
标签: python apache-spark pyspark azure-databricks
【问题讨论】:
标签: python apache-spark pyspark azure-databricks
Apache Spark 中有一个特殊的触发器,通常称为Trigger.Once - 它会处理所有可用数据,然后关闭流。只需在.writeStream 之后添加.trigger(once=True) 即可启用它。
唯一的问题是,在 Spark 3.x (DBR >= 7.x) 中,它完全忽略了诸如 maxFilesPerTrigger 等限制拉取处理的数据量的选项 - 在这种情况下它会尝试一次性处理所有数据,有时可能会导致性能问题。要解决您可以执行以下 hack 的解决方法 - 将 raw_data.writeStream.....start() 的结果分配给一个变量,例如 query = raw_data.writeStream.... - 并定期检查 query.get('numInputRows') 的值,如果它在一段时间内等于 0,则发出 @987654328 @
【讨论】: