Funkce from_avro
Platí pro: Databricks SQL Databricks Runtime 15.4 a novější
Vrátí hodnotu struktury s hodnotou avroBin
a jsonSchemaStr
.
Syntaxe
from_avro(avroBin, jsonSchemaStr [, options] )
Argumenty
avroBin
: VýrazBINARY
určující řádek dat Avro.avroSchemaSpec
: Cílové schéma ve formátu JSON. Musí odpovídat schématu zakódovanému vavroBin
to_avro().options
: VolitelnýMAP<STRING,STRING>
literál určující direktivy.
Návraty
A STRUCT
s názvy polí a typy na základě výsledku schema_of_json(jsonStr).
avroBin
musí být ve správném formátu s ohledem na avroSchemaSpec
data a options
nebo Databricks vyvolá výjimku.
Notes
Nejběžnější podporované jsou následující možnosti:
Možnost | Hodnota | Popis |
---|---|---|
'mode' |
'PERMISSIVE' , 'FAILFAST' |
V PERMISSIVE režimu jsou všechny poškozené objekty nebo pole v objektu nastaveny na NULL místo vyvolání chyby. |
compression |
'uncompressed' , ''snappy' 'deflade , 'bzip2' , , 'xz' 'zstandard' |
Určuje kodek komprese použitý ke kódování dat Avro. |
Další možnosti najdete v tématu Čtení a zápis streamovaných dat Avro.
Příklady
> SELECT from_avro(to_avro(5), '{ "type" : "int" }');
5
> SELECT from_avro(to_avro(5, '{ "type" : "int" }'), '{ "type" : "int" }');
5
> SELECT from_avro(to_avro(named_struct('num', 5, 'txt', 'hello')), '{ "type" : "record", "name": "my_record", "fields": [{ "name": "num", "type": "int"}, { "name": "txt", "type": "string"}]}');
{"num":5,"txt":"hello"}
> SELECT from_avro(to_avro(named_struct('num', 5, 'txt', 'hello')),
'{ "type" : "record", "name": "my_record", "fields": [{ "name": "num", "type": "int"}, { "name": "txt", "type": "double"}]}',
map('mode', 'failfast'));
Error: Avro data is not valid for the specified schema.
> SELECT from_avro(to_avro(named_struct('num', 5, 'txt', 'hello')),
'{ "type" : "record", "name": "my_record", "fields": [{ "name": "num", "type": "int"}, { "name": "txt", "type": "double"}]}',
map('mode', 'permissive'));
{"num":null,"txt":null}