当前位置: 首页 > 知识库问答 >
问题:

kafka-python:avro.io.SchemaResolutionException:无法访问分支索引55与2个分支的联合

阳勇
2023-03-14

我使用kafka python 2.0.1来使用avro数据。以下是我尝试过的代码:

from kafka import KafkaConsumer
import avro.schema
from avro.io import DatumReader, BinaryDecoder
import io

schema_path="schema.avsc"
schema = avro.schema.parse(open(schema_path).read())
reader = DatumReader(schema)


consumer = KafkaConsumer(
        bootstrap_servers='xxx.xxx.xxx.xxx:9093',
        security_protocol='SASL_SSL',
        sasl_mechanism = 'GSSAPI',
        auto_offset_reset = 'latest',
        ssl_check_hostname=False,
        api_version=(1,0,0))

consumer.subscribe(['test'])

for message in consumer:
       message_val = message.value
       print(message_val)
       bytes_reader = io.BytesIO(message_val)
       bytes_reader.seek(5)    
       decoder = avro.io.BinaryDecoder(bytes_reader)    
       record = reader.read(decoder)
       print(record)

我得到以下错误:

avro . io . schemaresolutionexception:无法访问具有2个分支的联合的分支索引55编写器的架构:[ "null "," int" ]读取器的架构:[ "null "," int" ]

任何人都可以建议这个错误的可能原因是什么?我已经按照这个线程跳过了最初的5个字节:

如何从Kafka解码/反序列化Avro与Python

共有1个答案

单于耘豪
2023-03-14

我让它工作了。问题是引用了错误的架构。谢谢。

 类似资料:
  • 美好的一天, 我尝试在新的Jenkins实例上设置多分支管道,在扫描多分支管道日志中遇到了以下错误: 没有这样的文件:E:\Continuous Integration\Jenkins\jobs\Enhanced API\indexing\indexing.log 根据jenkins.err.log,我遇到了一个 这个Jenkins的版本是2.85,带有以下版本的Git插件: Git客户端插件-2

  • 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤: 开发某个网站。 为实现某个新的需求,创建一个分支。 在这个分支上开展工作。 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理: 切换到你的线上分支(production branch)。 为这个紧急任务新建一个分支,并在其中修复它。 在测试通过之后,切换回线上

  • 若要在新建的issue1分支进行提交,需要切换到issue1分支。 要执行checkout命令以退出分支。 $ git checkout <branch> 切换到issue1分支。 $ git checkout issue1 Switched to branch 'issue1' 目前的历史记录是这样的。 Note 在checkout命令指定 -b选项执行,可以创建分支并进行切换。 $ git c

  • 我在一个分支“测试”中工作,并进行了拉操作,现在我按照原点进行更新。 我签出分支“开发”,它位于源/开发后面,我复制了一些代码更改。现在我运行: 当我在分支“测试”中工作时,我得到了许多未跟踪的文件,而不是暂存的文件。现在我只想签回测试分支并推动我的更改。我的更改很少,所以我可以还原并重做它们。但如何切换分支,因为我遇到了错误: 错误:签出将覆盖以下未跟踪的工作树文件: 所有未标记和未跟踪的文件

  • 问题内容: 有没有办法告诉詹金斯(2.2)删除已删除分支的作业?目前,由于未删除作业,因此我的构建监视器填充了分支。是否有设置可以触发此行为,还是应该将其记录为错误? 问题答案: 由于您使用的是最新的Jenkins版本,请考虑将作业切换到多分支管道设置。 工作流多分支功能(由工作流插件提供)提供以下关键功能: 在仓库中,每个新分支都会在Jenkins中自动创建工作流(作业)(假设Webhook已从

  • 我从Bitbucket或Github迁移了我的回购协议。我认为这无关紧要,但这是唯一不同的地方。有一段时间,我安装了两个遥控器: 然后我将两者都删除,并将原点指向github: 开发分公司测试推送: 一切都是最新的,好的,很好。 按照常规为某些工作创建新分支: 更新一两个文件。尝试推送至远程: 这会导致错误: 致命:无法将功能/名称解析为分支 在线搜索此问题,找到一些关于确保HEAD正确的信息,其