Java 如何避免将BigQuery数据读取到自定义数据类型时出现警告消息:Can';t验证BoundedSource类型的序列化元素

Java 如何避免将BigQuery数据读取到自定义数据类型时出现警告消息:Can';t验证BoundedSource类型的序列化元素,java,google-cloud-dataflow,apache-beam,Java,Google Cloud Dataflow,Apache Beam,我在这里定义了一个引用文档的自定义数据类型。 并使用下面的代码从BigQuery读取数据。 警告信息: 无法验证BoundedSource类型的序列化元素是否具有定义良好的equals方法。这可能会在某些PipelineRunner上产生不正确的结果 此消息出现在触发步骤TriggerIdCreation/Read(CreateSource)/Read(CreateSource)/Read(BoundedToundedSourceAdapter)/StripIds.out0时 我尝试向自定义

我在这里定义了一个引用文档的自定义数据类型。

并使用下面的代码从BigQuery读取数据。

警告信息: 无法验证BoundedSource类型的序列化元素是否具有定义良好的equals方法。这可能会在某些PipelineRunner上产生不正确的结果

此消息出现在触发步骤TriggerIdCreation/Read(CreateSource)/Read(CreateSource)/Read(BoundedToundedSourceAdapter)/StripIds.out0时

我尝试向自定义数据类型类添加equals()方法,如下所示

    @Override
    public boolean equals(Object object) {
        if (this == object) return true;
        if (object == null || getClass() != object.getClass()) return false;
        if (!super.equals(object)) return false;
        WeatherData that = (ErrorTelop) object;
        return Objects.equals(xxx, that.xxx) &&
               Objects.equals(yyy, that.yyy);
    }
这没有帮助


有人有办法避免这个警告吗?

你收到的警告似乎不是因为你在做什么。我认为这个警告来自ApacheBeam本身正在做的事情。它抱怨的实际类型是BoundedSource,一种内部梁类型,而不是您的自定义类型,从我查看的代码来看,它很可能与这里提到的
BoundedToundedSourceAdapter
有关


如果您的管道工作正常,那么您可能可以忽略这一点。如果您确实想提醒某人,您可以通知Beam用户或开发人员列表。

您的管道是否正常工作,或者是否收到任何错误。执行失败?另外,由于警告指出您的数据可能不正确。您是否检查了输出是否一致?管道工作正常。然而,这个警告让我担心将来会发生这种情况。