Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Извлекает вложенный вариант из v соответствии pathс , а затем приведение вложенного варианта targetType. Возвращает значение NULL, если путь не существует или приведение завершается ошибкой.
Синтаксис
from pyspark.sql import functions as sf
sf.try_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.try_variant_get(v, "$.a", "int").alias("r")).collect()
[Row(r=1)]
df.select(sf.try_variant_get(v, "$.b", "int").alias("r")).collect()
[Row(r=None)]
df.select(sf.try_variant_get(v, "$.a", "binary").alias("r")).collect()
[Row(r=None)]
df.select(sf.try_variant_get(sf.parse_json(df.json), df.path, "int").alias("r")).collect()
[Row(r=1)]