pubサブトピックへのログエクスポートを有効にしました。私はこれらのログを処理し、関連する列をBigQueryに格納するためにデータフローを使用しています。誰かがLogEntry
オブジェクトにpubsubメッセージのペイロードの変換を助けてもらえますか? 私は次のコードを試してみました:ログエクスポートでpubsubペイロードをLogEntryオブジェクトに変換する方法
@ProcessElement
public void processElement(ProcessContext c) throws Exception {
PubsubMessage pubsubMessage = c.element();
ObjectMapper mapper = new ObjectMapper();
byte[] payload = pubsubMessage.getPayload();
String s = new String(payload, "UTF8");
LogEntry logEntry = mapper.readValue(s, LogEntry.class);
}
をしかし、私は、次のエラーを得た:
com.fasterxml.jackson.databind.JsonMappingException: Can not find a (Map) Key deserializer for type [simple type, class com.google.protobuf.Descriptors$FieldDescriptor]
編集: 私は次のコードを試してみました:
try {
ByteArrayInputStream stream = new ByteArrayInputStream(Base64.decodeBase64(pubsubMessage.getPayload()));
LogEntry logEntry = LogEntry.parseDelimitedFrom(stream);
System.out.println("Log Entry = " + logEntry);
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
をしかし、私は、次の取得今エラー:
com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag