Compartir a través de


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. Produce una excepción si se produce un error en la conversión.

Syntax

from pyspark.sql import functions as sf

sf.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.variant_get(v, "$.a", "int").alias("r")).collect()
[Row(r=1)]
df.select(sf.variant_get(v, "$.b", "int").alias("r")).collect()
[Row(r=None)]
df.select(sf.variant_get(sf.parse_json(df.json), df.path, "int").alias("r")).collect()
[Row(r=1)]