try_variant_get
Extrait une sous-variante de v selon path, et ensuite convertit la sous-variante en targetType. Renvoie null si le chemin n'existe pas ou si la conversion échoue.
Syntaxe
Python
from pyspark.sql import functions as sf
sf.try_variant_get(v, path, targetType)
parameter
parameter | Type | Description |
|---|---|---|
|
| Une colonne variante ou un nom de colonne. |
|
| Une colonne contenant les chaînes du chemin d'extraction ou une chaîne représentant le chemin d'extraction. Un chemin valide doit start par |
| str | Le type de données cible à convertir, dans une chaîne formatée DDL. |
Renvoie
pyspark.sql.Column: une colonne de targetType représentant le résultat extrait
Exemples
Python
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()
Output
[Row(r=1)]
Python
df.select(sf.try_variant_get(v, "$.b", "int").alias("r")).collect()
Output
[Row(r=None)]
Python
df.select(sf.try_variant_get(v, "$.a", "binary").alias("r")).collect()
Output
[Row(r=None)]
Python
df.select(sf.try_variant_get(sf.parse_json(df.json), df.path, "int").alias("r")).collect()
Output
[Row(r=1)]