我有一个包含以下内容的Avro模式,作为其中一个字段。
我运行了avro-tools jar文件来创建表示模式的Java文件。这将生成以下属性:
当我创建此类的实例时,如何将
{
"name" : "currency",
"type" : ["null","bytes"],
"logicalType": "decimal",
"precision": 9,
"scale": 4
},
我运行了avro-tools jar文件来创建表示模式的Java文件。这将生成以下属性:
public java.nio.ByteBuffer currency;
在我的代码的其他位置,我将使用BigDecimal
类型的货币值。当我创建此类的实例时,如何将
BigDecimal
值转换为预期的ByteBuffer
?我可以直接使用ByteBuffer.toByteArray()
吗?还是需要做一些特殊的处理以确保它与avro(以及其他可能读取数据的工具,如Impala)兼容?