Spark Pandas_UDF的序列化错误

时间:2019-06-11 21:36:15

标签: apache-spark serialization pyspark user-defined-functions

我有一个python函数,我将其转换为Pandas_UDF函数,直到上周工作正常,但最近几天出现以下错误。我们使用Pandas UDF尝试了一个简单的python函数,并且没有抛出此错误。我不确定代码中到底是什么引起了这种情况。火花环境是否有任何变化。如果有帮助,我正在使用Azure Databricks。

搜索仅显示this link,但它很旧。

赞赏有关如何解决此问题的所有建议。

谢谢, 雨滴

  

SparkException:作业由于阶段失败而中止:23.0阶段中的任务0失败了4次,最近一次失败:23.0阶段中的任务0.3丢失(TID 252、172.17.69.7,执行者0):org.apache.spark.api .python.PythonException:追溯(最近一次调用为last):     文件“ /databricks/spark/python/pyspark/serializers.py”,第180行,_read_with_length       返回self.loads(obj)     载入中的文件“ /databricks/spark/python/pyspark/serializers.py”,行669       返回pickle.loads(obj,encoding = encoding)     子导入中的文件“ /databricks/spark/python/pyspark/cloudpickle.py”,第875行       导入(名称)   ImportError:没有名为“ _pandasujson”的模块

     

在处理上述异常期间,发生了另一个异常:

     

回溯(最近通话最近):     主文件“ 394”中的文件“ /databricks/spark/python/pyspark/worker.py”       func,profiler,deserializer,serializer = read_udfs(pickleSer,infile,eval_type)     read_udfs中的文件“ /databricks/spark/python/pyspark/worker.py”,第234行       arg_offsets,udf = read_single_udf(pickleSer,infile,eval_type,runner_conf)     read_single_udf中的文件“ /databricks/spark/python/pyspark/worker.py”,第160行       f,return_type = read_command(pickleSer,infile)     在read_command中的文件“ /databricks/spark/python/pyspark/worker.py”,第69行       命令=序列化器._read_with_length(文件)     文件“ /databricks/spark/python/pyspark/serializers.py”,第183行,_read_with_length       引发SerializationError(“由” + traceback.format_exc()引起)   pyspark.serializers.SerializationError:由回溯引起(最近一次调用最近):     文件“ /databricks/spark/python/pyspark/serializers.py”,第180行,_read_with_length       返回self.loads(obj)     载入中的文件“ /databricks/spark/python/pyspark/serializers.py”,行669       返回pickle.loads(obj,encoding = encoding)     子导入中的文件“ /databricks/spark/python/pyspark/cloudpickle.py”,第875行       导入(名称)   ImportError:没有名为“ _pandasujson”的模块

0 个答案:

没有答案