Condividi tramite


try_variant_get

Estrae una variante secondaria da v in base a pathe quindi esegue il cast della variante secondaria in targetType. Restituisce Null se il percorso non esiste o il cast ha esito negativo.

Sintassi

from pyspark.sql import functions as sf

sf.try_variant_get(v, path, targetType)

Parametri

Parametro TIPO Description
v pyspark.sql.Column o str Nome di colonna o colonna variante.
path pyspark.sql.Column o str Colonna contenente le stringhe del percorso di estrazione o una stringa che rappresenta il percorso di estrazione. Un percorso valido deve iniziare con $ ed è seguito da zero o più segmenti come [123], .name, ['name']o ["name"].
targetType str Tipo di dati di destinazione in cui eseguire il cast in una stringa in formato DDL.

Restituzioni

pyspark.sql.Column: colonna di targetType che rappresenta il risultato estratto

Esempi

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)]