Skip to content

parse_url(url, part[, key])

Описание

Функция parse_url() извлекает указанную часть из URL. Поддерживает извлечение различных компонентов URL, таких как протокол, хост, путь, параметры и т.д.

Параметры

  • url: string или Column - URL для разбора
  • part: string - часть URL для извлечения (один из: 'HOST', 'PATH', 'QUERY', 'REF', 'PROTOCOL', 'FILE', 'AUTHORITY', 'USERINFO')
  • key: string (опционально) - ключ параметра запроса для извлечения (используется только с 'QUERY')

Возвращаемое значение

String - извлеченная часть URL

Пример использования

from pyspark.sql.functions import parse_url

# Создаем DataFrame
df = spark.createDataFrame([
    ("https://www.example.com/path?param1=value1&param2=value2#fragment",),
    ("http://user:pass@host.com:8080/path?query=value",),
    ("ftp://ftp.example.com/files/",),
    ("invalid_url",),
    (None,)
], ["url"])

# Извлекаем различные части URL
df.select(
    "url",
    parse_url("url", "HOST").alias("host"),
    parse_url("url", "PATH").alias("path"),
    parse_url("url", "QUERY").alias("query"),
    parse_url("url", "PROTOCOL").alias("protocol"),
    parse_url("url", "QUERY", "param1").alias("param1")
).show(truncate=False)

# Результат:
# +------------------------------------------------+-------------+------+------------------------+---------+-------+
# |url                                             |host         |path  |query                   |protocol |param1 |
# +------------------------------------------------+-------------+------+------------------------+---------+-------+
# |https://www.example.com/path?param1=value1&...  |www.example.com|/path|param1=value1&param2=value2|https    |value1 |
# |http://user:pass@host.com:8080/path?query=value |host.com     |/path |query=value             |http     |null   |
# |ftp://ftp.example.com/files/                    |ftp.example.com|/files|                        |ftp      |null   |
# |invalid_url                                     |null         |null  |null                    |null     |null   |
# |null                                            |null         |null  |null                    |null     |null   |
# +------------------------------------------------+-------------+------+------------------------+---------+-------+

Примечания

  • Поддерживаемые части URL:
  • 'HOST' - имя хоста
  • 'PATH' - путь
  • 'QUERY' - строка запроса
  • 'REF' - фрагмент
  • 'PROTOCOL' - протокол
  • 'FILE' - путь и запрос
  • 'AUTHORITY' - авторизация
  • 'USERINFO' - информация о пользователе
  • Для некорректных URL возвращает NULL
  • Для NULL значений возвращает NULL
  • Функция полезна для анализа и обработки URL
  • Для извлечения параметров запроса используйте 'QUERY' с ключом