作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的数据在通过 Kafka 发送并存储在 S3 上时编码不正确。
它是使用 Debezium MySQL 连接器以小数形式插入到 Kafka 中的,它遵循以下规则:
创建的 Avro 模式的相关部分如下所示:
{
"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 中作为一串字母。我的直觉是这些字节是正确的,但不应表示为字符串,而应仅表示为 float 。
例子:
我尝试过使用 struct 和 ord,但似乎找不到合适的组合来将其转换回浮点形式。
这是我的一些尝试:
>>> struct.unpack('f','JiU8');
(5.088121542939916e-05,)
>>> struct.unpack('>f','JiU8');
(3822926.0,)
我有一个 Apache Spark 作业 (Python 2.7) 从 S3 读取数据并将数据移动到 OLAP 数据库中,所以我希望我可以在插入数据库之前用 Python 解决数据问题。
最佳答案
您可以将连接器的 decimal.handling.mode 设置为 string (请参阅 here )这可能会帮助您使值更容易在接收器上使用边。
关于python - 如何在不更改字节的情况下将字符串转换为 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50500819/
我是一名优秀的程序员,十分优秀!