Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir: Databricks Runtime 16.0 ve üstü
avroBin
ve jsonSchemaStr
içeren bir yapı değeri döndürür.
Söz dizimi
from_avro(avroBin, jsonSchemaStr, options )
Tartışmalar
-
avroBin
BINARY
: Avro verilerinin satırını belirten ifade. -
avroSchemaSpec
: JSON biçiminde hedef şema.avroBin
içinde belirtilen şekilde kodlanmış şemayla eşleşmelidir. -
options
:MAP<STRING,STRING>
literal belirten yönergeler.
İadeler
A
avroBin
ve avroSchemaSpec
açısından options
iyi biçimlendirilmiş olmalıdır, aksi takdirde Databricks bir özel durum oluşturur.
Notlar
Aşağıdaki seçenekler en yaygın olarak desteklenir:
Seçenek | Değer | Açıklama |
---|---|---|
'mode' |
'PERMISSIVE' , 'FAILFAST' |
Modu PERMISSIVE olduğunda, bir nesnedeki bozuk nesneler veya alanlar hata vermek yerine NULL olarak ayarlanır. |
compression |
'uncompressed' , 'snappy' , 'deflade ', 'bzip2' , 'xz' , 'zstandard' |
Avro verilerini kodlamak için kullanılan sıkıştırma codec bileşenini belirtir. |
Daha fazla seçenek için bkz. Akışlı Avro verilerini okuma ve yazma.
Örnekler
> 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}