snowflake.snowpark.functions.parse_url

snowflake.snowpark.functions.parse_url(string_expr: Union[snowflake.snowpark.column.Column, str], permissive: Union[snowflake.snowpark.column.Column, str] = None) Column[source]

Parses a URL string and returns a JSON object containing the URL components.

Parameters:
  • string_expr (ColumnOrName) – The URL string to parse.

  • permissive (ColumnOrName, optional) – If 1, parsing errors are ignored and None is returned. If 0 or omitted, parsing errors raise an exception.

Returns:

A JSON object containing the parsed URL components.

Return type:

Column

Examples::
>>> from snowflake.snowpark.functions import col, lit
>>> df = session.create_dataframe([
...     ['https://www.snowflake.com/'],
...     ['http://USER:PASS@EXAMPLE.INT:4345/HELLO.PHP?USER=1'],
...     ['mailto:abc@xyz.com'],
...     [None]
... ], schema=["url"])
>>> df.select(parse_url(col("url"))).collect()
[Row(PARSE_URL("URL")='{\n  "fragment": null,\n  "host": "www.snowflake.com",\n  "parameters": null,\n  "path": "",\n  "port": null,\n  "query": null,\n  "scheme": "https"\n}'), Row(PARSE_URL("URL")='{\n  "fragment": null,\n  "host": "USER:PASS@EXAMPLE.INT",\n  "parameters": {\n    "USER": "1"\n  },\n  "path": "HELLO.PHP",\n  "port": "4345",\n  "query": "USER=1",\n  "scheme": "http"\n}'), Row(PARSE_URL("URL")='{\n  "fragment": null,\n  "host": null,\n  "parameters": null,\n  "path": "abc@xyz.com",\n  "port": null,\n  "query": null,\n  "scheme": "mailto"\n}'), Row(PARSE_URL("URL")=None)]
>>> df2 = session.create_dataframe([
...     ['example.int/hello.php?user=12#nofragment']
... ], schema=["invalid_url"])
>>> df2.select(parse_url(col("invalid_url"), lit(1))).collect()
[Row(PARSE_URL("INVALID_URL", 1)='{\n  "error": "scheme not specified"\n}')]