Ошибка при построении внешней таблицы поверх файлов EventHub-capture avro - PullRequest
0 голосов
/ 23 апреля 2020

Мы пытаемся создать внешнюю таблицу поверх avh-файлов eventhub-capture в azure с помощью Databricks. Но мы сталкиваемся с ошибкой ниже.

Error in SQL statement: SparkException: Cannot recognize hive type string: map<string,uniontype<bigint,double,string,binary>>

Мы следовали схеме, представленной на веб-сайте MS. Мы передаем схему в виде файла avs c.

{

    "type":"record",
    "name":"EventData",
    "namespace":"Microsoft.ServiceBus.Messaging",
    "fields":[
                 {"name":"SequenceNumber","type":"long"},
                 {"name":"Offset","type":"string"},
                 {"name":"EnqueuedTimeUtc","type":"string"},
                 {"name":"SystemProperties","type":{"type":"map","values":["long","double","string","bytes"]}},
                 {"name":"Properties","type":{"type":"map","values":["long","double","string","bytes"]}},
                 {"name":"Body","type":["null","bytes"]}
             ]
}

Это схема, представленная на веб-сайте MS, а также схема, которую мы получаем, когда используем опцию get-schema в jar avrotools файл. Если мы изменим схему полей SystemProperties и Properties, чтобы она стала картой записей, то таблица создается, но с ошибками, т.е. когда мы описываем таблицу, я получаю ужасное сообщение ERROR_ERROR_ERROR, как упомянуто в самих документах avro.

Я также попытался передать схему напрямую с помощью буквального параметра и передать файл avs c с помощью параметра URL. Попробовал как с разделом, так и без него. Фрагмент кода для справки.

create external table test_tbl 
stored as avro 
PARTITIONED BY (`dt` STRING)
location '<Folder containing the avro files>'
tblproperties('avro.schema.url' = 'full path of the avroschema.avsc')

Спасибо за помощь. Приветствия ...

...