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¶m2=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¶m2=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' с ключом