怎么可能org.apache.kafka.connect.data.Decimal存储在avro文件中是否转换为python类型?

2024-06-24 11:47:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python解释Debezium在Kafka中存储的Avro记录

           {
              "name": "id",
              "type": {
                "type": "bytes",
                "scale": 0,
                "precision": 64,
                "connect.version": 1,
                "connect.parameters": {
                  "scale": "0"
                },
                "connect.name": "org.apache.kafka.connect.data.Decimal",
                "logicalType": "decimal"
              }
            }

我不确定这对应于哪个python3原语类型。如何反序列化此值?在

提前谢谢!在


Tags: kafkanameorgidbytesversiontypeconnect
1条回答
网友
1楼 · 发布于 2024-06-24 11:47:22

如果你看看

https://insight.io/github.com/apache/kafka/blob/trunk/connect/api/src/main/java/org/apache/kafka/connect/data/Decimal.java

public static byte[] fromLogical(Schema schema, BigDecimal value) {
    if (value.scale() != scale(schema))
        throw new DataException("BigDecimal has mismatching scale value for given Decimal schema");
    return value.unscaledValue().toByteArray();
}

如您所见,它使用BigDecimal,这相当于python中的Decimal

What is the python for Java's BigDecimal?

所以在这个例子中你应该寻找十进制。在

第2部分-反序列化

关于反序列化,我需要反馈来更新答案。到目前为止,其他领域你是怎么做的?在

相关问题 更多 >