Teilen über


try_variant_get

Extrahiert eine Untervariante nach vpath, und wandelt dann die Untervariante in targetType. Gibt NULL zurück, wenn der Pfad nicht vorhanden ist oder die Umwandlung fehlschlägt.

Syntax

from pyspark.sql import functions as sf

sf.try_variant_get(v, path, targetType)

Die Parameter

Parameter Typ Description
v pyspark.sql.Column oder str Ein Variant-Spalten- oder Spaltenname.
path pyspark.sql.Column oder str Eine Spalte mit den Extraktionspfadzeichenfolgen oder einer Zeichenfolge, die den Extraktionspfad darstellt. Ein gültiger Pfad sollte mit $ beginnen und gefolgt von null oder mehr Segmenten wie [123], .name, ['name']oder ["name"].
targetType str Der zu konvertierende Zieldatentyp in eine DDL-formatierte Zeichenfolge.

Rückkehr

pyspark.sql.Column: eine Spalte zur targetType Darstellung des extrahierten Ergebnisses

Examples

from pyspark.sql import functions as sf
df = spark.createDataFrame([ {'json': '''{ "a" : 1 }''', 'path': '$.a'} ])
v = sf.parse_json(df.json)
df.select(sf.try_variant_get(v, "$.a", "int").alias("r")).collect()
[Row(r=1)]
df.select(sf.try_variant_get(v, "$.b", "int").alias("r")).collect()
[Row(r=None)]
df.select(sf.try_variant_get(v, "$.a", "binary").alias("r")).collect()
[Row(r=None)]
df.select(sf.try_variant_get(sf.parse_json(df.json), df.path, "int").alias("r")).collect()
[Row(r=1)]