相应的';Groovy';所需Avro架构的映射-divolte

相应的';Groovy';所需Avro架构的映射-divolte,groovy,avro,divolte,Groovy,Avro,Divolte,我试图为我所需的Avro模式编写一个divolte-Groovy映射,但每次都会抛出错误 有人能帮助我使用兼容的groovy脚本映射吗 二分螺栓-0.9.0 { "namespace": "io.divolte.record", "type": "record", "name": "ClickStreamEvent", "fields": [ { "name": "timestamp", "type": "long" }, { "nam

我试图为我所需的Avro模式编写一个divolte-Groovy映射,但每次都会抛出错误

有人能帮助我使用兼容的groovy脚本映射吗

二分螺栓-0.9.0

{
  "namespace": "io.divolte.record",
  "type": "record",
  "name": "ClickStreamEvent",
  "fields": [
    { "name": "timestamp",               "type": "long" },
    { "name": "clientTimestamp",         "type": "long" },
    { "name": "detectedDuplicate",       "type": "boolean" },
    { "name": "detectedCorruption",      "type": "boolean" },
    { "name": "firstInSession",          "type": "boolean" },
    { "name": "viewportPixelWidth",      "type": ["null", "int"],    "default": null },
    { "name": "viewportPixelHeight",     "type": ["null", "int"],    "default": null },
    { "name": "screenPixelWidth",        "type": ["null", "int"],    "default": null },
    { "name": "screenPixelHeight",       "type": ["null", "int"],    "default": null },
    { "name": "remoteHost",              "type": "string" },
    { "name": "referer",                 "type": ["null", "string"], "default": null },
    { "name": "location",                "type": ["null", "string"], "default": null },
    { "name": "partyId",                 "type": ["null", "string"], "default": null },
    { "name": "sessionId",               "type": ["null", "string"], "default": null },
    { "name": "pageViewId",              "type": ["null", "string"], "default": null },
    { "name": "userAgentString",         "type": ["null", "string"], "default": null },
    { "name": "userAgentName",           "type": ["null", "string"], "default": null },
    { "name": "userAgentFamily",         "type": ["null", "string"], "default": null },
    { "name": "userAgentVendor",         "type": ["null", "string"], "default": null },
    { "name": "userAgentType",           "type": ["null", "string"], "default": null },
    { "name": "userAgentVersion",        "type": ["null", "string"], "default": null },
    { "name": "userAgentDeviceCategory", "type": ["null", "string"], "default": null },
    { "name": "userAgentOsFamily",       "type": ["null", "string"], "default": null },
    { "name": "userAgentOsVersion",      "type": ["null", "string"], "default": null },
    { "name": "userAgentOsVendor",       "type": ["null", "string"], "default": null },                
    { "name": "userId",                 "type": ["null", "string"],  "default":null },
    { "name": "userName",               "type": ["null", "string"],  "default":null },
    { "name": "roleId",                 "type": ["null", {"type":"array", "items": "string"}],  "default":null },
    { "name": "roleName",               "type": ["null", {"type":"array", "items": "string"}],  "default":null },
    { "name": "inputEventType",         "type": {"type": "enum", "name": "eventType", "symbols": ["buttonClick", "pageLoad", "inputChange"]} },
    { "name": "eventName",              "type": "string",           "default":"unknown" },
    { "name": "eventValue",             "type": ["null", "string"], "default":null }
  ]
}
多谢各位

  • 要在Groovy映射DSL中映射Avro“array”,请使用下面的hack。 看
  • Groovy映射DSL中没有对Avro“enum”字段的官方支持。
  • 要在Groovy映射DSL中映射Avro“array”,请使用下面的hack。 看
  • Groovy映射DSL中没有对Avro“enum”字段的官方支持。
  • map eventParameters().path('$.roleId.*') onto 'roleId'
    map eventParameters().path('$.roleName.*') onto 'roleName'