streaming - 如何计算 Spark 结构化流作业的输入和处理速率?
问题描述
我正在尝试使用每秒发出 100 行的简单“速率”源来了解 spark 3.1.1 中结构化流作业的输入速率和处理速率的确切含义。用户界面报告:
在 4 个指标中,有 3 个是有意义的:
输入记录保持在 100 处,这是正确的
批处理持续时间约为 300 毫秒
处理速率显示大约 330 条奇数记录/秒,这似乎还可以(输入记录/批处理持续时间)。
输入速率显示大约 6666 条记录/秒,我无法理解。没有指定触发间隔。代码片段:
火花 = SparkSession
.builder
.getOrCreate()lines=spark
.readStream
.format("rate")
.option("rowsPerSecond", 100) .load
()outputStream = 行
.writeStream
.format("console")
.outputMode("append")
.queryName("RateQuery")query=outputStream.start() query.awaitTermination()
我对这个过程的理解是:
- 接收到 100 行(或多或少是瞬时的)并且有一个暂停
- 100 行形成并启动一个微批次
- 完成/写入控制台大约需要 330 毫秒
- 返回并等待大约 670 ms 以等待下一次输入数据突发。
我读到输入速率= numInputRows(或批量大小)/以秒为单位的触发间隔
这如何计算到 6666 条记录/秒?编辑:感谢 mike 从这里的回复,现在很明显,输入速率反映了 spark 接收输入的速度(它能够在 15 毫秒内读取 100 行,速率为 6000 多条记录/秒)。
解决方案
推荐阅读
- c++ - 我们可以将数组映射到整数吗?
- python-3.x - Arduino 没有从树莓派中获得价值
- javascript - 使用 AMD 的节点“fs”模块和“readdir”方法
- php - 使用 Sql Server 和 PHP 在 jQuery Full 日历中添加和加载事件
- ajax - 在 WordPress 中设置授权标头?
- python - 通过一个函数返回在 Flask 中呈现的 HTML 和 JS,而无需运行两次
- laravel-5 - 如何使用 cmd laravel 创建模型控制器和数据库表,任何人都可以给出命令列表吗?
- html - 如何从类中的微数据元标记中检索内容值
- c# - 在基类的构造函数中添加一个新参数意味着我必须重构从它继承的所有类?
- angular - Compodoc 可以离线安装吗?