Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: Databricks Runtime 16.0 en hoger
Retourneert een struct-waarde met de avroBin
en jsonSchemaStr
.
Syntaxis
from_avro(avroBin, jsonSchemaStr, options )
Argumenten
-
avroBin
: EenBINARY
expressie die een rij met Avro-gegevens opgeeft. -
avroSchemaSpec
: Het doelschema in JSON-indeling. Het moet overeenkomen met het schema dat inavroBin
is gecodeerd zoals opgegeven in to_avro(). -
options
: eenMAP<STRING,STRING>
letterlijke vermelding van instructies.
Retouren
Een STRUCT
met veldnamen en -typen op basis van het resultaat van schema_of_json(jsonStr).
avroBin
moet goed zijn gevormd met betrekking tot de avroSchemaSpec
en options
of Databricks genereert een uitzondering.
Opmerkingen
De volgende opties worden het meest ondersteund:
Optie | Waarde | Beschrijving |
---|---|---|
'mode' |
'PERMISSIVE' , 'FAILFAST' |
In de PERMISSIVE -modus worden alle beschadigde objecten of velden in een object ingesteld op NULL in plaats van een foutmelding te genereren. |
compression |
'uncompressed' , 'snappy' , 'deflade , 'bzip2' , 'xz' , 'zstandard' |
Hiermee geeft u de compressiecodec op die wordt gebruikt om de Avro-gegevens te coderen. |
Voor meer opties, zie Lees- en schrijfbewerkingen van streaming Avro-gegevens.
Voorbeelden
> SELECT from_avro(to_avro(5), '{ "type" : "int" }', NULL:MAP<STRING, STRING>);
5
> SELECT from_avro(to_avro(5, '{ "type" : "int" }'), '{ "type" : "int" }', NULL:MAP<STRING, STRING>);
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"}]}', NULL:MAP<STRING, 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}