Перехват исключений в функции отражения spark sql

#apache-spark #pyspark #apache-spark-sql

#apache-spark #pyspark #apache-spark-sql

Вопрос:

У меня есть код pyspark, который декодирует строку в кодировке url:

 df.withColumn("clean_url", F.expr("""reflect("java.net.URLDecoder", "decode", url, "UTF-8")"""))
  

Но иногда он получает строку с недопустимыми символами и выдает исключение:

 Caused by: java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "x"
  

Как я могу пропустить эти исключения и вернуть NULL, если строка не может быть декодирована?

Я пробовал функции pyspark UDF, чтобы пропускать исключения, но при большом наборе данных натыкаюсь на ошибки ООМ и снижение производительности. Поэтому предпочитайте использовать встроенные функции sql. Я не хочу переписывать весь код в scala с помощью UDFs, чтобы перехватить это исключение. Я надеюсь справиться с этим с помощью функций spark sql.

Комментарии:

1. Вы решили это?