通过


parse_url

从 URL 中提取指定部件。 如果提供了键,它将返回关联的查询参数值。

Syntax

from pyspark.sql import functions as sf

sf.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.parse_url(df.url, df.part)).show()
+--------------------+
|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.parse_url(df.url, df.part, df.key)).show()
+-------------------------+
|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.parse_url(df.url, df.part)).show()
+--------------------+
|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.parse_url(df.url, df.part)).show()
+--------------------+
|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.parse_url(df.url, df.part)).show()
+--------------------+
|parse_url(url, part)|
+--------------------+
|               /path|
+--------------------+