Scala и Avro: как получить схему на основе данных примера? - PullRequest
0 голосов
/ 05 марта 2019

Я использую Scala 2.12 и импортировал необходимые библиотеки для "org.apache.avro".

Я хочу создать схему (и, следовательно, требуемый класс дел) на основе данных примера. На основе этой схемы я могу преобразовать реальные данные и сопоставить их с соответствующей схемой AVRO, а также преобразовать запись в AVRO и отправить ее по соответствующей теме Kafka.

В моей схеме есть несколько значений атрибутов: null (AVRO null).

Пример данных:

{
    "header":{
        "messageId":"mysys_20181130163429809_00000001",
        "businessId":"mysys_BookLevel_Daily_Regular_20181130_BOOK",
        "batchId":"01_20181130_8271",
        "sourceSystem":"mysys",
        "secondarySourceSystem":null,
        "sourceSystemCreationTimestamp":1532637269809,
        "sentBy":"mysys",
        "sentTo":"SA",
        "messageType":"PnLMessage",
        "schemaVersion":"1.11PnL-SNAPSHOT",
        "processing":"RealTime",
        "recordOffset":null
    },
    "pnlData":{
        "pnlHeader":{
            "granularity":"BookLevel",
            "pnlType":"Daily",
            "pnlSubType":"Regular,
            "businessDate":"2018-11-30",
            "bookId":"1234",
            "bookDescription":"BOOK",
            "pnlStatus":"Locked"
        },
        "pnlBreakDown":{
            "category":null,
            "subCategory":null,
            "riskCategory":null,
            "pnlCurrency":USD,
            "pnlDetails":[
                "pnlLocalAmount":100.46
                "pnlCDEAmount":150.69
            ]
        }
    }
}

Я могу попытаться создать свой класс дел на основе вышеизложенного, НО я смотрю, есть ли у нас что-нибудь, что я могу использовать для создания схемы по библиотекам и сохранения ее в виде файла .avsc и использования в проекте. Также основная часть - как перевести SCALA None или null в AVRO NULL?

...