Pular para o conteúdo principal

tentar_variant_get

Extrai uma subvariante de v de acordo com path e então converte a subvariante para targetType. Retorna nulo se o caminho não existir ou se a conversão falhar.

Sintaxe

Python
from pyspark.sql import functions as sf

sf.try_variant_get(v, path, targetType)

Parâmetros

Parâmetro

Tipo

Descrição

v

pyspark.sql.Column ou str

Uma coluna variante ou um nome de coluna.

path

pyspark.sql.Column ou str

Uma coluna contendo as strings do caminho de extração ou strings que representam o caminho de extração. Um caminho válido deve começar com $ e ser seguido por zero ou mais segmentos como [123], .name, ['name'], ou ["name"].

targetType

str

O tipo de dados de destino para conversão, em strings formatadas em DDL.

Devoluções

pyspark.sql.Column: uma coluna de targetType representando o resultado extraído

Exemplos

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