#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. Вы решили это?