Udostępnij przez


variant_get

Wyodrębnia wariant podrzędny z zgodnie z vpath, a następnie rzutuje pod wariant na targetType. Zwraca wartość null, jeśli ścieżka nie istnieje. Zgłasza wyjątek, jeśli rzutowanie nie powiedzie się.

Składnia

from pyspark.sql import functions as sf

sf.variant_get(v, path, targetType)

Parametry

Parameter Typ Description
v pyspark.sql.Column lub str Nazwa kolumny wariantu lub kolumny.
path pyspark.sql.Column lub str Kolumna zawierająca ciągi ścieżki wyodrębniania lub ciąg reprezentujący ścieżkę wyodrębniania. Prawidłowa ścieżka powinna zaczynać się od $, a po nim następuje zero lub więcej segmentów, takich jak [123], .name, ['name']lub ["name"].
targetType str Docelowy typ danych do rzutowania w ciąg w formacie DDL.

Zwraca

pyspark.sql.Column: kolumna targetType reprezentująca wyodrębniony wynik

Przykłady

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