variant_get

Extrahuje sub-variantu podle vpatha potom přetypuje dílčí variantu na targetType. Vrátí hodnotu null, pokud cesta neexistuje. Vyvolá výjimku, pokud se přetypování nezdaří.

Syntaxe

from pyspark.sql import functions as sf

sf.variant_get(v, path, targetType)

Parametry

Parameter Typ Description
v pyspark.sql.Column nebo str Název sloupce nebo sloupce varianty.
path pyspark.sql.Column nebo str Sloupec obsahující řetězce cesty extrakce nebo řetězec představující cestu extrakce. Platná cesta by měla začínat $ a za ní následuje nula nebo více segmentů, jako jsou [123], .name, ['name']nebo ["name"].
targetType str Cílový datový typ, který se má přetypovat do řetězce ve formátu DDL.

Návraty

pyspark.sql.Column: sloupec targetType představující extrahovaný výsledek

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