【发布时间】:2020-01-06 06:41:03
【问题描述】:
在运行单元测试 (PipelineSpec) 时,有什么方法可以查看 SCollection 的内容?
在多台机器上运行生产时,无法在一台机器上查看整个集合,但我想知道有没有办法查看 SCollection 的内容(例如在调试模式下运行单元测试时在 intellij 中)。
【问题讨论】:
标签: scala apache-beam spotify-scio
在运行单元测试 (PipelineSpec) 时,有什么方法可以查看 SCollection 的内容?
在多台机器上运行生产时,无法在一台机器上查看整个集合,但我想知道有没有办法查看 SCollection 的内容(例如在调试模式下运行单元测试时在 intellij 中)。
【问题讨论】:
标签: scala apache-beam spotify-scio
如果您想将调试语句打印到控制台,那么您可以使用debug 方法,它是SCollections 的一部分。示例代码如下所示
val stdOutMock = new MockedPrintStream
Console.withOut(stdOutMock) {
runWithContext { sc =>
val r = sc.parallelize(1 to 3).debug(prefix = "===")
r should containInAnyOrder(Seq(1, 2, 3))
}
}
stdOutMock.message.filterNot(_ == "\n") should contain theSameElementsAs
Seq("===1", "===2", "===3")
【讨论】: