2

代码是这样开始的:

return pcol.apply(ParDo.named("FindTheBug")
        .withSideInputs(foo)
        .withSideInputs(bar(
        .of(new DoFn<T, U>() {
            F myFoo = c.sideInput(foo);
            B myBar = c.sideInput(bar);

声明了这些侧输入,为什么 Dataflow 看不到它们?

4

2 回答 2

6

事实证明,多次调用 withSideInputs 是不允许的。代码应如下所示:

return pcol.apply(ParDo.named("FindTheBug")
        .withSideInputs(foo, bar)
        .of(new DoFn<T, U>() {
            // now you can access both side inputs

提示是该函数称为“withSideInputs”,而不是“withSideInput”。这不止一次让我绊倒,而且无法在谷歌上搜索,所以我想我会把它写下来以防其他人遇到这个问题!

于 2015-08-25T20:58:12.080 回答
2

此外,当一个人忘记调用时会发生此错误withSideInputs

于 2018-03-16T02:24:57.347 回答