кодер по умолчанию для объекта pojo в Apache Beam

Согласно документации Apache Beam, я могу найти кодировщики для конкретных типов данных, а также настраиваемые кодеры. Это дает возможность создавать собственные кодировщики путем регистрации в реестре кода. Но я хотел бы знать, есть ли какой-нибудь кодировщик для POJO / bean. Например, что такое кодер для PCollection

См. также:  Потребителям Apache Beam KafkaIO в группе потребителей назначается уникальный идентификатор группы
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. code tutorial

    Если ваш POJO определен в вашем проекте, взгляните на DefaultSchema. Этот пример делает именно то, что вы хотите, регистрируя схему (которая неявно регистрирует кодировщик) путем проверки методов, совместимых с JavaBean:

    @DefaultSchema(JavaBeanSchema.class)
    class MyClass {
      public String getFoo();
      void setFoo(String foo);
            ....
    }
    

    Обратите внимание, что кодировщики предназначены для элементов коллекции, поэтому кодировщика для PCollection нет. Скорее, PCollection может иметь набор кодировщиков, определяющий, как отдельные элементы сериализуются и десериализуются.

    Спасибо за эту информацию, у меня есть сценарий. Предположим, у меня есть PCollection ‹bean› (здесь bean-компонент — это класс pojo). когда я пытался реализовать преобразование ParDo в этой коллекции PCollection, я получаю ошибку кодировщика (ошибка — Невозможно получить кодировщик, используйте метод setcoder). Согласно документации Apache Beam, существуют специальные кодеры для int, void, strng, avro. Поэтому мне интересно, какой кодер мне нужно реализовать в этом сценарии. person code tutorial; 23.02.2019

    Если у вас есть контроль над определением bean и вы аннотируете @DefaultSchema(JavaBeanSchema.class), а bean не имеет параметров типа, то Beam должен иметь достаточно информации, чтобы сделать вывод о кодировщике; ошибка кодера, о которой вы упомянули, должна исчезнуть. В противном случае вы можете преобразовать ваш объект в более простой тип, чтобы получить что-то вроде PCollection ‹Map‹ String, String ››, или реализовать явный подкласс Coder для вашего типа и передать экземпляр этого класса кодера в setCoder. person code tutorial; 25.02.2019

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: