将 BigQuery 数据读取为自定义数据类型时如何避免警告消息:无法验证 BoundedSource 类型的序列化元素
How to avoid warning message when read BigQuery data to custom data type: Can't verify serialized elements of type BoundedSource
我定义了一个自定义数据类型,请参考此处的文档。
https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/snippets/Snippets.java#L127
并使用以下代码从 BigQuery 读取数据。
https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/snippets/Snippets.java#L375
警告信息:
无法验证 BoundedSource 类型的序列化元素是否具有明确定义的 equals 方法。这可能会在某些 PipelineRunner 上产生不正确的结果。
此消息出现在步骤 TriggerIdCreation/Read(CreateSource)/Read(CreateSource)/Read(BoundedToUnboundedSourceAdapter)/StripIds.out0
我尝试像这样将 equals() 方法添加到自定义数据类型 class
@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);
}
这没有帮助。
有人知道如何避免此警告吗?
您收到的警告似乎与您正在做的任何事情无关。我认为警告来自 Apache Beam 本身正在做的事情。它抱怨的实际类型是 BoundedSource,一种内部 Beam 类型,而不是您的自定义类型,从我查看代码来看,它很可能与那里提到的 BoundedToUnboundedSourceAdapter
有关。
如果您的管道工作正常,那么您可以忽略它。如果您确实想提醒某人,您可以 contact Beam 用户或开发人员列表。
我定义了一个自定义数据类型,请参考此处的文档。 https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/snippets/Snippets.java#L127
并使用以下代码从 BigQuery 读取数据。 https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/snippets/Snippets.java#L375
警告信息: 无法验证 BoundedSource 类型的序列化元素是否具有明确定义的 equals 方法。这可能会在某些 PipelineRunner 上产生不正确的结果。
此消息出现在步骤 TriggerIdCreation/Read(CreateSource)/Read(CreateSource)/Read(BoundedToUnboundedSourceAdapter)/StripIds.out0
我尝试像这样将 equals() 方法添加到自定义数据类型 class
@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);
}
这没有帮助。
有人知道如何避免此警告吗?
您收到的警告似乎与您正在做的任何事情无关。我认为警告来自 Apache Beam 本身正在做的事情。它抱怨的实际类型是 BoundedSource,一种内部 Beam 类型,而不是您的自定义类型,从我查看代码来看,它很可能与那里提到的 BoundedToUnboundedSourceAdapter
有关。
如果您的管道工作正常,那么您可以忽略它。如果您确实想提醒某人,您可以 contact Beam 用户或开发人员列表。