Поделиться через


try_parse_url

Это специальная версия, parse_url которая выполняет ту же операцию, но возвращает значение NULL, а не вызывает ошибку, если синтаксический анализ не может быть выполнен.

Синтаксис

from pyspark.sql import functions as sf

sf.try_parse_url(url, partToExtract, key=None)

Параметры

Параметр Тип Description
url pyspark.sql.Column или str Столбец строк, каждый из которых представляет URL-адрес.
partToExtract pyspark.sql.Column или str Столбец строк, каждый из которых представляет часть, извлекаемую из URL-адреса.
key pyspark.sql.Column или str, необязательный Столбец строк, каждый из которых представляет ключ параметра запроса в URL-адресе.

Возвраты

pyspark.sql.Column: новый столбец строк, каждый из которых представляет значение извлеченной части из URL-адреса.

Примеры

Пример 1. Извлечение части запроса из URL-адреса

from pyspark.sql import functions as sf
df = spark.createDataFrame(
  [("https://spark.apache.org/path?query=1", "QUERY")],
  ["url", "part"]
)
df.select(sf.try_parse_url(df.url, df.part)).show()
+------------------------+
|try_parse_url(url, part)|
+------------------------+
|                 query=1|
+------------------------+

Пример 2. Извлечение значения определенного параметра запроса из URL-адреса

from pyspark.sql import functions as sf
df = spark.createDataFrame(
  [("https://spark.apache.org/path?query=1", "QUERY", "query")],
  ["url", "part", "key"]
)
df.select(sf.try_parse_url(df.url, df.part, df.key)).show()
+-----------------------------+
|try_parse_url(url, part, key)|
+-----------------------------+
|                            1|
+-----------------------------+

Пример 3. Извлечение части протокола из URL-адреса

from pyspark.sql import functions as sf
df = spark.createDataFrame(
  [("https://spark.apache.org/path?query=1", "PROTOCOL")],
  ["url", "part"]
)
df.select(sf.try_parse_url(df.url, df.part)).show()
+------------------------+
|try_parse_url(url, part)|
+------------------------+
|                   https|
+------------------------+

Пример 4. Извлечение части узла из URL-адреса

from pyspark.sql import functions as sf
df = spark.createDataFrame(
  [("https://spark.apache.org/path?query=1", "HOST")],
  ["url", "part"]
)
df.select(sf.try_parse_url(df.url, df.part)).show()
+------------------------+
|try_parse_url(url, part)|
+------------------------+
|        spark.apache.org|
+------------------------+

Пример 5. Извлечение части пути из URL-адреса

from pyspark.sql import functions as sf
df = spark.createDataFrame(
  [("https://spark.apache.org/path?query=1", "PATH")],
  ["url", "part"]
)
df.select(sf.try_parse_url(df.url, df.part)).show()
+------------------------+
|try_parse_url(url, part)|
+------------------------+
|                   /path|
+------------------------+

Пример 6. Недопустимый URL-адрес

from pyspark.sql import functions as sf
df = spark.createDataFrame(
  [("inva lid://spark.apache.org/path?query=1", "QUERY", "query")],
  ["url", "part", "key"]
)
df.select(sf.try_parse_url(df.url, df.part, df.key)).show()
+-----------------------------+
|try_parse_url(url, part, key)|
+-----------------------------+
|                         NULL|
+-----------------------------+