Source code for pyspark.errors.exceptions.base

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# See the License for the specific language governing permissions and
# limitations under the License.

from typing import Dict, Optional, cast

from pyspark.errors.utils import ErrorClassesReader

[docs]class PySparkException(Exception): """ Base Exception for handling errors generated from PySpark. """ def __init__( self, message: Optional[str] = None, error_class: Optional[str] = None, message_parameters: Optional[Dict[str, str]] = None, ): # `message` vs `error_class` & `message_parameters` are mutually exclusive. assert (message is not None and (error_class is None and message_parameters is None)) or ( message is None and (error_class is not None and message_parameters is not None) ) self.error_reader = ErrorClassesReader() if message is None: self.message = self.error_reader.get_error_message( cast(str, error_class), cast(Dict[str, str], message_parameters) ) else: self.message = message self.error_class = error_class self.message_parameters = message_parameters
[docs] def getErrorClass(self) -> Optional[str]: """ Returns an error class as a string. .. versionadded:: 3.4.0 See Also -------- :meth:`PySparkException.getMessageParameters` :meth:`PySparkException.getSqlState` """ return self.error_class
[docs] def getMessageParameters(self) -> Optional[Dict[str, str]]: """ Returns a message parameters as a dictionary. .. versionadded:: 3.4.0 See Also -------- :meth:`PySparkException.getErrorClass` :meth:`PySparkException.getSqlState` """ return self.message_parameters
[docs] def getSqlState(self) -> None: """ Returns an SQLSTATE as a string. Errors generated in Python have no SQLSTATE, so it always returns None. .. versionadded:: 3.4.0 See Also -------- :meth:`PySparkException.getErrorClass` :meth:`PySparkException.getMessageParameters` """ return None
def __str__(self) -> str: if self.getErrorClass() is not None: return f"[{self.getErrorClass()}] {self.message}" else: return self.message
[docs]class AnalysisException(PySparkException): """ Failed to analyze a SQL query plan. """
class SessionNotSameException(PySparkException): """ Performed the same operation on different SparkSession. """
[docs]class TempTableAlreadyExistsException(AnalysisException): """ Failed to create temp view since it is already exists. """
[docs]class ParseException(AnalysisException): """ Failed to parse a SQL command. """
[docs]class IllegalArgumentException(PySparkException): """ Passed an illegal or inappropriate argument. """
class ArithmeticException(PySparkException): """ Arithmetic exception thrown from Spark with an error class. """ class UnsupportedOperationException(PySparkException): """ Unsupported operation exception thrown from Spark with an error class. """ class ArrayIndexOutOfBoundsException(PySparkException): """ Array index out of bounds exception thrown from Spark with an error class. """ class DateTimeException(PySparkException): """ Datetime exception thrown from Spark with an error class. """ class NumberFormatException(IllegalArgumentException): """ Number format exception thrown from Spark with an error class. """
[docs]class StreamingQueryException(PySparkException): """ Exception that stopped a :class:`StreamingQuery`. """
[docs]class QueryExecutionException(PySparkException): """ Failed to execute a query. """
[docs]class PythonException(PySparkException): """ Exceptions thrown from Python workers. """
class SparkRuntimeException(PySparkException): """ Runtime exception thrown from Spark with an error class. """
[docs]class SparkUpgradeException(PySparkException): """ Exception thrown because of Spark upgrade. """
[docs]class UnknownException(PySparkException): """ None of the above exceptions. """
class PySparkValueError(PySparkException, ValueError): """ Wrapper class for ValueError to support error classes. """ class PySparkTypeError(PySparkException, TypeError): """ Wrapper class for TypeError to support error classes. """ class PySparkAttributeError(PySparkException, AttributeError): """ Wrapper class for AttributeError to support error classes. """ class PySparkRuntimeError(PySparkException, RuntimeError): """ Wrapper class for RuntimeError to support error classes. """ class PySparkAssertionError(PySparkException, AssertionError): """ Wrapper class for AssertionError to support error classes. """ class PySparkNotImplementedError(PySparkException, NotImplementedError): """ Wrapper class for NotImplementedError to support error classes. """