get_json_object()
Описание
Функция get_json_object() извлекает значение из JSON строки по указанному пути. Если путь не существует или JSON некорректен, возвращает NULL.
Параметры
column: Column - столбец с JSON строкойpath: String - путь к значению в формате JSONPath
Возвращаемое значение
Column - извлеченное значение или NULL
Пример использования
from pyspark.sql import SparkSession
from pyspark.sql.functions import get_json_object, col
# Создаем SparkSession
spark = SparkSession.builder.appName("get_json_object_example").getOrCreate()
# Создаем DataFrame с JSON строками
data = [
    ('{"name": "John", "age": 30, "address": {"city": "New York", "zip": 10001}}',),
    ('{"name": "Alice", "age": 25, "address": {"city": "Boston", "zip": 02108}}',),
    ('{"name": "Bob", "age": 35}',),  # Отсутствует address
    ('invalid json',)  # Некорректный JSON
]
df = spark.createDataFrame(data, ["json"])
# Извлекаем значения из JSON
result = df.select(
    "json",
    get_json_object(col("json"), "$.name").alias("name"),
    get_json_object(col("json"), "$.age").alias("age"),
    get_json_object(col("json"), "$.address.city").alias("city"),
    get_json_object(col("json"), "$.address.zip").alias("zip")
).show()
# Результат:
# +------------------------------------------------+-----+---+--------+-----+
# |                                            json| name|age|    city|  zip|
# +------------------------------------------------+-----+---+--------+-----+
# |{"name": "John", "age": 30, "address": {"cit...| John| 30|New York|10001|
# |{"name": "Alice", "age": 25, "address": {"ci...|Alice| 25|  Boston|02108|
# |                    {"name": "Bob", "age": 35}|  Bob| 35|    NULL| NULL|
# |                                   invalid json| NULL|NULL|    NULL| NULL|
# +------------------------------------------------+-----+---+--------+-----+
 Примечания
- Путь к значению указывается в формате JSONPath
 - Поддерживаются следующие операции JSONPath:
 $- корень документа.- доступ к свойству[]- доступ к элементу массива*- все элементы- Для работы с JSON массивами используйте 
json_array_length() - Для получения ключей JSON объекта используйте 
json_object_keys()