共用方式為


parse_url

從網址中擷取指定的部分。 如果提供金鑰,則會回傳相關的查詢參數值。

語法

from pyspark.sql import functions as sf

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

參數

參數 類型 Description
url pyspark.sql.Column 或 str 一欄字串,每個字串代表一個網址。
partToExtract pyspark.sql.Column 或 str 一欄字串,每個字串代表要從 URL 中提取的部分。
key pyspark.sql.Column 或是力量,選用 一欄字串,每個字串代表 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|
+--------------------+