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
-
avroBinBINARY: Avro verilerinin satırını belirten ifade. -
avroSchemaSpec: JSON biçiminde hedef şema.avroBiniç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.
Seçenekler
Seçeneklerin tam listesi için bkz. Avro.
| Seçenek | Değerler | Açıklama |
|---|---|---|
mode |
FAILFAST, PERMISSIVE |
Hata işleme modu. Varsayılan: FAILFAST. Modda PERMISSIVE , bozuk kayıtlar hata oluşturmak yerine olarak NULL ayarlanır. |
compression |
uncompressed, snappy, deflate, , bzip2, xz, zstandard |
Avro verilerini kodlamak için sıkıştırma codec'i. |
avroSchemaEvolutionMode |
none, restart |
Şema geliştirme modu. Varsayılan: none. olarak restartayarlandığında, şema değiştiğinde sorgu bir UnknownFieldException oluşturur. Yeni şemayı kullanmak için işi yeniden başlatın. Bkz . from_avro ile şema geliştirme modunu kullanma. |
recursiveFieldMaxDepth |
Aralık: -115 |
Tek bir özyinelemeli yol boyunca en fazla özyineleme derinliği. Varsayılan: -1, özyineleme derinliğini sınırlamaz.Paylaşılan bir türe birçok farklı şema yolundan ulaşılabilir olduğunda, bu seçenek yalnızca bir yol üzerinde derinliği sınırladığından, şema genişletme sürücünün belleğinin tükenmiş olmasına neden olabilir. Geçici çözüm olarak:
|
Ö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}