Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Função
Aplica-se a:
Databricks Runtime 16.0 e superior
Retorna um valor de struct com avroBin e jsonSchemaStr.
Sintaxe
from_avro(avroBin, jsonSchemaStr, options )
Argumentos
-
avroBin: UmaBINARYexpressão que especifica uma linha de dados Avro. -
avroSchemaSpec: o esquema de destino no formato JSON. Deve corresponder ao esquema codificado emavroBinconforme especificado em to_avro(). -
options: um literalMAP<STRING,STRING>que especifica diretivas.
Devoluções
Um STRUCT com nomes de campo e tipos com base no resultado de schema_of_json(jsonStr).
avroBindeve ser bem formado em relação ao e avroSchemaSpec ou o options Databricks gera uma exceção.
Observações
As seguintes opções são mais comumente suportadas:
| Opção | Valor | Descrição |
|---|---|---|
'mode' |
'PERMISSIVE', 'FAILFAST' |
No modo PERMISSIVE, qualquer objeto ou campo corrompido em um objeto é configurado para NULL em vez de gerar um erro. |
compression |
'uncompressed', 'snappy', 'deflade', 'bzip2', 'xz''zstandard' |
Especifica o codec de compactação usado para codificar os dados Avro. |
Para mais opções, confira Leitura e gravação de dados de streaming Avro.
Exemplos
> 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}
Funções relacionadas
- função
from_avro