Как получить правильное значение BigDecimal, если для схемы avro требуется тип байта логического типа decimal? - PullRequest
0 голосов
/ 15 апреля 2020

Пожалуйста, помогите мне получить правильное значение. Мой avro-файл требует байтового значения логического типа decimal в json. Я получаю значение в json:

"value": "java.nio.HeapByteBuffer[pos=0 lim=3 cap=3]"

Это должно быть 123,45.

Это функция, которую я написал:

private def toByte(v: String, s: Schema) = {

    if(s.getLogicalType.isInstanceOf[LogicalTypes.Decimal]) {
        DecimalConversion.toBytes(new java.math.BigDecimal(v).setScale(s.getLogicalType.asInstanceOf[LogicalTypes.Decimal].getScale),
        s,s.getLogicalType)
    }
    else{
        v.toByte
    }

    if(s.getLogicalType.isInstanceOf[LogicalTypes.Decimal]) {
        DecimalConversion.toBytes(new java.math.BigDecimal(v).setScale(s.getLogicalType.asInstanceOf[LogicalTypes.Decimal].getScale),
        s,s.getLogicalType)
    }
    else{
        v.toByte
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...