Поделиться через


variant_get

Извлекает вложенный вариант из v соответствии pathс , а затем приведение вложенного варианта targetType. Возвращает значение NULL, если путь не существует. Создает исключение, если приведение завершается ошибкой.

Синтаксис

from pyspark.sql import functions as sf

sf.variant_get(v, path, targetType)

Параметры

Параметр Тип Description
v pyspark.sql.Column или str Имя столбца или столбца варианта.
path pyspark.sql.Column или str Столбец, содержащий строки пути извлечения или строку, представляющую путь извлечения. Допустимый путь должен начинаться с $ и следует нулю или нескольким сегментам, таким как [123], .name, ['name']или ["name"].
targetType str Целевой тип данных для приведения в строку в формате DDL.

Возвраты

pyspark.sql.Column: столбец targetType , представляющий извлеченный результат

Примеры

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