"调用未知视图的sideInput()"即使我通过了视图也是例外?

时间:2015-08-25 20:58:12

标签: java google-cloud-dataflow apache-beam

代码开头如下:

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);

声明了这些侧输入,为什么数据流没有看到它们?

2 个答案:

答案 0 :(得分:5)

事实证明,不允许多次调用withSideInputs。代码应该是这样的:

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

提示是函数被称为&#34; withSideInputs&#34;,而不是&#34; withSideInput&#34;。这让我不止一次地绊倒了,并且不是可谷歌的,所以我想我会把它写下来以防其他人碰到这个!

答案 1 :(得分:1)

此外,当忘记拨打withSideInputs时会发生此错误。