Avro Tools Failure Ожидается запуск профсоюза. Получил VALUE_STRING - PullRequest
0 голосов
/ 19 июня 2020

Я определил приведенную ниже схему avro ( car_sales_customer.avs c) ,

{
  "type" : "record",
  "name" : "topLevelRecord",
  "fields" : [ {
            "name": "cust_date",
            "type": "string"
        },
        {
            "name": "customer",
            "type": {
                "type": "array",
                "items": {
                    "name": "customer",
                    "type": "record",
                    "fields": [
                        {
                            "name": "address",
                            "type": "string"
                        },
                        {
                            "name": "driverlience",
                            "type": [
                                "null",
                                "string"
                            ],
                            "default": null
                        },
                        {
                            "name": "name",
                            "type": "string"
                        },
                        {
                            "name": "phone",
                            "type": "string"
                        }
                    ]
                }
            }
        }]
}

и мои входные данные json payload ( car_sales_customer. json) выглядит следующим образом:

{"cust_date":"2017-04-28","customer":[{"address":"SanFrancisco,CA","driverlience":"K123499989","name":"JoyceRidgely","phone":"16504378889"}]}

Я пытаюсь использовать avro-tools и преобразовать вышеуказанный json в avro, используя схему avro,

java -jar ./avro-tools-1.9.2.jar fromjson --schema-file ./car_sales_customer.avsc ./car_sales_customer.json > ./car_sales_customer.avro

Когда я выполняю приведенный выше оператор, я получаю следующую ошибку:

Exception in thread "main" org.apache.avro.AvroTypeException: Expected start-union. Got VALUE_STRING
        at org.apache.avro.io.JsonDecoder.error(JsonDecoder.java:514)
        at org.apache.avro.io.JsonDecoder.readIndex(JsonDecoder.java:433)
        at org.apache.avro.io.ResolvingDecoder.readIndex(ResolvingDecoder.java:283)
        at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:187)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:160)
        at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:259)
        at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:247)
        at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:179)
        at org.apache.avro.generic.GenericDatumReader.readArray(GenericDatumReader.java:298)
        at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:183)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:160)
        at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:259)
        at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:247)
        at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:179)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:160)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:153)
        at org.apache.avro.tool.DataFileWriteTool.run(DataFileWriteTool.java:89)
        at org.apache.avro.tool.Main.run(Main.java:66)
        at org.apache.avro.tool.Main.main(Main.java:55)

Есть ли решение для устранения ошибки?

...