通过


try_parse_url

这是执行相同作的特殊版本 parse_url ,但如果无法执行分析,则返回 NULL 值,而不是引发错误。

Syntax

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|
+-----------------------------+