2013-05-30 3 views

ответ

0

Вы не можете десериализовать данные protobuf с помощью системы сериализации apache avro, потому что они не используют один и тот же протокол кодирования/декодирования .

Одним из способов решения вашей проблемы является создание системы интерфейса, которая десериализует протобуф предстоящих данных (с использованием системы protobuf). После этого шага вы можете легко заполнить свой сгенерированный класс дешифрованными данными.

+0

Благодаря ... В моем коде мы в настоящее время используем ProtobufDatamWriter для записи данных protobuf в схеме avro, но protobufDatamWriter не применим для записи своего требуемого класса protobuf. пожалуйста, пришлите мне какой-нибудь код или дайте способ решить. –

+0

Попробуйте использовать 'DatumWriter ' из API API Apache (см. Больше [здесь] (http://avro.apache.org/docs/current/gettingstartedjava.html#Serializing-N101DE)) с данными protobuf ** десериализованными **. –

0

Я реализовать преобразование из буфера протокола к Avro записи вы можете попробовать: https://github.com/cecol/protobuf-to-avro , но вам все еще нужно, чтобы обеспечить надлежащую схему буфера протокола .proto файла и соответствуют Avro Schema .avsc файлового

Смежные вопросы