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.
Avro biçimindeki ikili sütunu ilgili katalizör değerine dönüştürür. Belirtilen şema okuma verileriyle eşleşmelidir, aksi takdirde davranış tanımlanmamıştır: başarısız olabilir veya rastgele bir sonuç döndürebilir.
Sağlanmasa ama her ikisi de jsonFormatSchemasubject sağlanmışsaschemaRegistryAddress, işlev Schema Registry Avro biçimindeki ikili bir sütunu ilgili katalizör değerine dönüştürür.
Sözdizimi
from pyspark.sql.avro.functions import from_avro
from_avro(data, jsonFormatSchema=None, options=None, subject=None, schemaRegistryAddress=None)
Parametreler
| Parametre | Türü | Açıklama |
|---|---|---|
data |
pyspark.sql.Column veya str |
Avro ile kodlanmış verileri içeren ikili sütun. |
jsonFormatSchema |
str, isteğe bağlı | JSON dize biçiminde Avro şeması. |
options |
dict, isteğe bağlı | Avro kaydının nasıl ayrıştırıldığından ve şema kayıt defteri istemcisinin yapılandırmasından sorumlu seçenekler. |
subject |
str, isteğe bağlı | Şema Kayıt Defteri'nde verilerin ait olduğu konu. |
schemaRegistryAddress |
str, isteğe bağlı | Şema Kayıt Defteri'nin adresi (konak ve bağlantı noktası). |
Seçenekler
| Option | 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:
|
İadeler
pyspark.sql.Column: Seri durumdan çıkarılmış Avro verilerini ilgili katalizör değeri olarak içeren yeni bir sütun.
Örnekler
Örnek 1: JSON şeması kullanarak Avro ikili sütununu seri durumdan çıkarma
from pyspark.sql import Row
from pyspark.sql.avro.functions import from_avro, to_avro
data = [(1, Row(age=2, name='Alice'))]
df = spark.createDataFrame(data, ("key", "value"))
avro_df = df.select(to_avro(df.value).alias("avro"))
json_format_schema = '''{"type":"record","name":"topLevelRecord","fields":
[{"name":"avro","type":[{"type":"record","name":"value",
"namespace":"topLevelRecord","fields":[{"name":"age","type":["long","null"]},
{"name":"name","type":["string","null"]}]},"null"]}]}'''
avro_df.select(from_avro(avro_df.avro, json_format_schema).alias("value")).show(truncate=False)
+------------------+
|value |
+------------------+
|{{2, Alice}} |
+------------------+