Skip to content

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