json_array_length(json_array)
Описание
Функция json_array_length()
возвращает длину JSON-массива. Если входное значение не является JSON-массивом, возвращается NULL.
Параметры
json_array
: Column - JSON-массив в виде строки
Возвращаемое значение
Integer - длина JSON-массива или NULL
Пример использования
from pyspark.sql import SparkSession
from pyspark.sql.functions import json_array_length
# Создаем SparkSession
spark = SparkSession.builder.appName("json_array_length_example").getOrCreate()
# Создаем DataFrame с JSON-массивами
data = [
(1, '["a", "b", "c"]'),
(2, '["x", "y"]'),
(3, '[]'),
(4, '{"key": "value"}'),
(5, None)
]
df = spark.createDataFrame(data, ["id", "json"])
# Получаем длину JSON-массивов
result = df.select(
"id",
json_array_length("json").alias("length")
).show()
# Результат:
# +---+------+
# | id|length|
# +---+------+
# | 1| 3|
# | 2| 2|
# | 3| 0|
# | 4| null|
# | 5| null|
# +---+------+
Примечания
- Если входное значение не является JSON-массивом, возвращается NULL
- Для работы с обычными массивами используйте
size()
- Для получения ключей JSON-объекта используйте
json_object_keys()
- Для работы с JSON-строками используйте
json_tuple()