spark structured streaming job如何处理stream - static DataFrame join?
How does spark structured streaming job handle stream - static DataFrame join?
我有一个 spark 结构化流作业,它从 cassandra 和 deltalake 读取映射 table 并加入流 df。我想在这里了解确切的机制。 spark 是否会在每个微批周期中命中这些数据源(cassandra 和 deltalake)?如果是这种情况,我在 spark web ui 中看到这些 table 只读一次。
请帮助我理解这一点。
提前致谢
"Does spark hit these data sources(cassandra and deltalake) for every cycle of microbatch?"
根据 O'Reilly 关于静态流连接的“Learning Spark,第 2 版”一书,提到在每个微批次中读取静态 DataFrame。
更准确地说,我发现书中的以下部分很有帮助:
流静态连接是无状态操作,因此不需要任何类型的水印
静态DataFrame在加入每个微批次的流数据时会被重复读取,所以可以缓存静态DataFrame来加速读取。
如果定义静态 DataFrame 的数据源中的基础数据发生变化,流式查询是否看到这些变化取决于数据源的特定行为。例如,如果静态 DataFrame 是在文件上定义的,那么在重新启动流式查询之前不会获取对这些文件的更改(例如附加)。
在应用“静态流”连接时,假定静态部分根本没有变化或变化缓慢。如果您计划连接两个快速变化的数据源,则需要切换到“流-流”连接。
我有一个 spark 结构化流作业,它从 cassandra 和 deltalake 读取映射 table 并加入流 df。我想在这里了解确切的机制。 spark 是否会在每个微批周期中命中这些数据源(cassandra 和 deltalake)?如果是这种情况,我在 spark web ui 中看到这些 table 只读一次。 请帮助我理解这一点。 提前致谢
"Does spark hit these data sources(cassandra and deltalake) for every cycle of microbatch?"
根据 O'Reilly 关于静态流连接的“Learning Spark,第 2 版”一书,提到在每个微批次中读取静态 DataFrame。
更准确地说,我发现书中的以下部分很有帮助:
流静态连接是无状态操作,因此不需要任何类型的水印
静态DataFrame在加入每个微批次的流数据时会被重复读取,所以可以缓存静态DataFrame来加速读取。
如果定义静态 DataFrame 的数据源中的基础数据发生变化,流式查询是否看到这些变化取决于数据源的特定行为。例如,如果静态 DataFrame 是在文件上定义的,那么在重新启动流式查询之前不会获取对这些文件的更改(例如附加)。
在应用“静态流”连接时,假定静态部分根本没有变化或变化缓慢。如果您计划连接两个快速变化的数据源,则需要切换到“流-流”连接。