共用方式為


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 一欄字串,每個字串代表一個網址。
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.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:無效網址

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