#java #google-cloud-dataflow #apache-beam
#java #google-cloud-поток данных #apache-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() к классу пользовательского типа данных следующим образом
@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) amp;amp;
Objects.equals(yyy, that.yyy);
}
что не помогает.
У кого-нибудь есть идея избежать этого предупреждения?
Комментарии:
1. Ваш конвейер работает правильно или вы получили какую-либо ошибку.неудачное выполнение? Кроме того, поскольку в предупреждении указано, что ваши данные могут быть неверными. Вы проверили, соответствует ли результат?
2. Конвейер работает должным образом. Однако предупреждение заставляет меня беспокоиться об этом в будущем.
Ответ №1:
Предупреждение, которое вы получаете, похоже, не связано с тем, что вы делаете. Я думаю, что предупреждение исходит от чего-то, что делает сам Apache Beam. Фактический тип, на который он жалуется, — это BoundedSource, тип внутреннего луча, а не ваш пользовательский тип, и, судя по моему просмотру кода, он, скорее всего, связан с BoundedToUnboundedSourceAdapter
упомянутым там.
Если ваш конвейер работает правильно, то вы, вероятно, можете проигнорировать это. Если вы действительно хотите кого-то предупредить, вы можете связаться со списками пользователей Beam или разработчиков.