Upgrading from PySpark 3.1 to 3.2ΒΆ
In Spark 3.2, the PySpark methods from sql, ml, spark_on_pandas modules raise the
TypeError
instead ofValueError
when are applied to an param of inappropriate type.In Spark 3.2, the traceback from Python UDFs, pandas UDFs and pandas function APIs are simplified by default without the traceback from the internal Python workers. In Spark 3.1 or earlier, the traceback from Python workers was printed out. To restore the behavior before Spark 3.2, you can set
spark.sql.execution.pyspark.udf.simplifiedTraceback.enabled
tofalse
.In Spark 3.2, pinned thread mode is enabled by default to map each Python thread to the corresponding JVM thread. Previously, one JVM thread could be reused for multiple Python threads, which resulted in one JVM thread local being shared to multiple Python threads. Also, note that now
pyspark.InheritableThread
orpyspark.inheritable_thread_target
is recommended to use together for a Python thread to properly inherit the inheritable attributes such as local properties in a JVM thread, and to avoid a potential resource leak issue. To restore the behavior before Spark 3.2, you can setPYSPARK_PIN_THREAD
environment variable tofalse
.