错误:带有抽象类的DynamicDestinations-Apache Beam

时间:2019-05-09 16:50:03

标签: java apache dataflow beam

我有4个需要填充的独立BigQuery表。我创建了一个抽象类BaseBQTable,其他表也进行了扩展。

在Beam管道中,我将抽象类作为输入,在DynamicDestinations中,我尝试使用其方法从Child类中生成真实的模式(目的地)。

代码如下:

BQTableMessages.apply("Push to Bigquery", BigQueryIO.write()
                .to(new DynamicDestinations<BaseBQTable, BaseBQTable>() {

                    public BaseBQTable getDestination(ValueInSingleWindow<BaseBQTable> element) {
                        return element.getValue();
                    }

                    public TableDestination getTable(BaseBQTable tableObj) {
                        String s = tableObj.toString();
                        TableDestination mydestination = tableObj.getTableDestination();
                        // Maybe it doesn't like using the method above because it itself is an abstract class
                        return mydestination;
                    }

                    public TableSchema getSchema(BaseBQTable tableObj) {
                        return null;
                    }
                })

如果我在使用方法getTableDestination的行中注释掉,或替换为return null,则intelliJ不会抱怨。

但是,由于这个原因,我得到了这个模糊的错误;

无法解析方法 '到(匿名org.apache.DynamicDestinations,bqpackage.BaseBQTable,bqpackage.BaseBQTable>'

我有种感觉,它不喜欢输入元素是一个抽象类,但我对Java还是比较陌生。

任何建议都将不胜感激! 谢谢

0 个答案:

没有答案