【问题标题】:Kafka Connect cassandra source -error for Decimal data typeKafka Connect cassandra 源 - 十进制数据类型的错误
【发布时间】:2019-04-22 17:46:43
【问题描述】:
我使用的是 kafka connect cassandra source connector 1.0 版本。我在 cassandra 表中有一个十进制数据类型列(价格),并将其作为 json 从源连接器写入 kafka 主题,它以某种字符串格式写入十进制值,例如"price":"AA=="。
现在它在我的火花流中给出错误,同时转换为“数字格式异常”....??请提出在 kafka 主题中写入值时可能出现的问题。
提前谢谢。
【问题讨论】:
标签:
apache-spark
cassandra
apache-kafka
apache-kafka-connect
spark-structured-streaming
【解决方案1】:
它看起来像 Kafka Connect + Decimals 中的 known bug。正如问题中所建议的,您需要将数据从 base64 编码字符串“手动”转换为BigDecimal:
BigDecimal bigDecimal = new BigDecimal(
new BigInteger(Base64.getDecoder().decode("BfXhAA==")), scale);
【解决方案2】:
在连接器文件中用 to_char(fieldname) 包围字段