我正在尝试创建一个.avro
包含bytes
as type 和decimal
aslogicalType 的示例文件,但是avro
加载到 hive 表时该文件会产生不同的值。可能是什么原因?
架构.avsc:
{
"type" : "record",
"name" : "example",
"namespace" : "com.xyz.avro",
"fields" : [ {
"name" : "cost",
"type" : {
"type" : "bytes",
"logicalType" : "decimal",
"precision" : 38,
"scale" : 10
}
}]
}
数据.json:
{ "cost" : "0.0" }
转换为.avro
使用avro-tools
:
java -jar avro-tools-1.8.2.jar fromjson --schema-file schema.avsc data.json > data.avro
加载data.avro
并查询 hive 表后:
hive> select cost from tmp_cost;
OK
0.0003157552
关于 SO 的类似问题:create json representation for decimal logical type and byte types for avro schema