Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Funktionen
Gäller för:
Databricks Runtime 16.0 och senare versioner
Returnerar ett binärt Avro-värde med det angivna indatavärdet.
Syntax
to_avro(expr [, avroSchemaSpec] )
Argument
-
expr: Ett uttryck. -
avroSchemaSpec: Ett valfritt målschema i JSON-format. Om den anges måste den matcha denexprtyp som anges i Anteckningar.
Returer
En Avro-kodad BINARY.
Kommentar
Mappningen av SQL-typer till Avro-typer är följande:
| SQL-typ | Avro-schema |
|---|---|
VOID |
{ "type" : "null" } |
BOOLEAN |
{ "type" : "boolean" } |
TINYINT |
{ "type" : "int" } |
SMALLINT |
{ "type" : "int" } |
INT |
{ "type" : "int" } |
BIGINT |
{ "type" : "long" } |
DECIMAL(p, s) |
{ "type": "fixed", "name": "a", logicalType": "decimal", "size": (p+1)/2, precision": p, "scale": s } |
FLOAT |
{ "type" : "float" } |
DOUBLE |
{ "type" : "float" } |
STRING |
{ "type" : "string" } |
DATE |
{ "type" : "int", "logicalType" : "date" } |
TIMESTAMP |
{ "type" : "long" } som mikrosekunder sedan 1970-01-01 00:00:00.000000 |
TIMESTAMP_NTZ |
{ "type" : "long" } som mikrosekunder sedan 1970-01-01 00:00:00.000000 |
YEAR MONTH INTERVAL |
{ "type" : "long" } som månader |
DAY TIME INTERVAL |
{ "type" : "long" } som mikrosekunder |
BINARY |
{ "type" : "bytes" } |
STRUCT<field1 type1, ...> |
{ "type" : "record", "name": "struct_name", "fields": [ { "name" : "field1", "type" : ... }, ... ] } |
ARRAY<type> |
{ "type" : "array", "items": { "type" : ... } |
MAP<STRING, valueType> |
{ "type" : "map", "keyType": { "type" : ... }, "valueType": { "type" : ... } } |
MAP<nonStringType, valueType> |
Stöds inte |
VARIANT |
Stöds inte |
Exempel
> 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"}