1

我正在尝试创建一个.avro包含bytesas type 和decimalaslogicalType 的示例文件,但是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

4

0 回答 0