Compartir vía


try_variant_get

Extrae una sub variant de v según pathy, a continuación, convierte la sub variant en targetType. Devuelve null si la ruta de acceso no existe o se produce un error en la conversión.

Syntax

from pyspark.sql import functions as sf

sf.try_variant_get(v, path, targetType)

Parámetros

Parámetro Tipo Description
v pyspark.sql.Column o str Un nombre de columna o columna variant.
path pyspark.sql.Column o str Columna que contiene las cadenas de ruta de acceso de extracción o una cadena que representa la ruta de acceso de extracción. Una ruta de acceso válida debe comenzar con $ y va seguida de cero o más segmentos como [123], .name, ['name']o ["name"].
targetType str Tipo de datos de destino al que se va a convertir, en una cadena con formato DDL.

Devoluciones

pyspark.sql.Column: una columna de targetType que representa el resultado extraído.

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