Python 如何在不更改字节的情况下将字符串转换为浮点?
通过卡夫卡发送并存储在S3上时,我的数据编码不正确 它是使用Debezium MySQL连接器以十进制形式插入Kafka的,该连接器遵循以下规则: 创建的Avro模式的相关部分如下所示:Python 如何在不更改字节的情况下将字符串转换为浮点?,python,python-2.7,Python,Python 2.7,通过卡夫卡发送并存储在S3上时,我的数据编码不正确 它是使用Debezium MySQL连接器以十进制形式插入Kafka的,该连接器遵循以下规则: 创建的Avro模式的相关部分如下所示: { "name": "PRICE_SELLING", "type": [ "null", { "type": "bytes", "scale": 2, "precision": 64, "connect.version": 1,
{
"name": "PRICE_SELLING",
"type": [
"null",
{
"type": "bytes",
"scale": 2,
"precision": 64,
"connect.version": 1,
"connect.parameters": {
"scale": "2"
},
"connect.name": "org.apache.kafka.connect.data.Decimal",
"logicalType": "decimal"
}
],
"default": null
}
问题是,当我从主题中读取数据并写入S3时,它以字符串的形式在S3中结束。根据我的直觉,字节是正确的,但它不应该表示为字符串,而应该表示为浮点
示例:
- “JiU8”应该是24999.00
- “JiDw”应为24988.00
- “RxFc”应为46575.00
- “LyZQ”应为30900.00
我有一个Apache Spark作业(Python 2.7)从S3读取数据并将数据移动到OLAP数据库中,因此我希望在插入数据库之前用Python解决数据问题。可以将连接器的decimal.handling.mode设置为string(请参阅)这可能有助于您更容易在接收器端使用这些值。请回答您的问题,并展示您使用
struct
模块编写的代码。您是否考虑过十进制模块?它是一种精确的浮动的替代品。这些浮动成为这些可打印字符的可能性非常低。。。因此,这些字符串可能是以某种方式编码的——知道它们是如何编码的吗?@martineau我已经添加了一些尝试。@AChampion我想你发现了什么……我发布了我用来插入卡夫卡的工具的文档。