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] (https://github.com/snowflakedb/snowpark-python/blob/v1.45.0/src/snowflake/snowpark/_functions/scalar_functions.py#L4774-L4810)¶
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:
- 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}')]