Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Converteert een binaire kolom van Avro-indeling naar de bijbehorende katalysatorwaarde. Het opgegeven schema moet overeenkomen met de leesgegevens, anders is het gedrag niet gedefinieerd: het kan mislukken of een willekeurig resultaat retourneren.
Als jsonFormatSchema deze niet is opgegeven, maar beide subject en schemaRegistryAddress worden opgegeven, converteert de functie een binaire kolom van de Avro-indeling van schemaregister naar de bijbehorende katalysatorwaarde.
Syntaxis
from pyspark.sql.avro.functions import from_avro
from_avro(data, jsonFormatSchema=None, options=None, subject=None, schemaRegistryAddress=None)
Parameterwaarden
| Kenmerk | Typ | Beschrijving |
|---|---|---|
data |
pyspark.sql.Column of str |
De binaire kolom met avro-gecodeerde gegevens. |
jsonFormatSchema |
str, optioneel | Het Avro-schema in JSON-tekenreeksindeling. |
options |
dicteren, optioneel | Opties om te bepalen hoe de Avro-record wordt geparseerd en geconfigureerd voor de schemaregisterclient. |
subject |
str, optioneel | Het onderwerp in schemaregister waartoe de gegevens behoren. |
schemaRegistryAddress |
str, optioneel | Het adres (host en poort) van het schemaregister. |
Opties
| Option | Waarden | Beschrijving |
|---|---|---|
mode |
FAILFAST, PERMISSIVE |
Foutafhandelingsmodus. Standaard: FAILFAST. In PERMISSIVE de modus worden beschadigde records ingesteld op NULL in plaats van een fout op te geven. |
compression |
uncompressed, , snappydeflate, bzip2, , , xzzstandard |
Compressiecodec voor het coderen van Avro-gegevens. |
avroSchemaEvolutionMode |
none, restart |
De evolutiemodus van het schema. Standaard: none. Als deze is ingesteld restartop, genereert de query een UnknownFieldException wanneer het schema wordt gewijzigd. Start de taak opnieuw op om het nieuwe schema te gebruiken. Zie De modus Schemaontwikkeling gebruiken met from_avro. |
recursiveFieldMaxDepth |
Bereik: -1 tot 15 |
Maximale recursiediepte langs één recursief pad. Standaard: -1, waarmee de recursiediepte niet wordt beperkt.Wanneer een gedeeld type bereikbaar is vanaf veel verschillende schemapaden, kan de schema-uitbreiding ertoe leiden dat het stuurprogramma onvoldoende geheugen heeft omdat deze optie alleen diepte voor één pad begrenst. Tijdelijke oplossing:
|
Retouren
pyspark.sql.Column: Een nieuwe kolom met de gedeserialiseerde Avro-gegevens als de bijbehorende katalysatorwaarde.
Examples
Voorbeeld 1: Een binaire Avro-kolom deserialiseren met behulp van een JSON-schema
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}} |
+------------------+