admin管理员组

文章数量:1794759

PickleException: expected zero arguments for construction of ClassDict (for numpy.dtype)

PickleException: expected zero arguments for construction of ClassDict (for numpy.dtype)

问题:spark使用numpy实现的udf报错。

版本

Spark 2.2.1 Python 2.7.11 NumPy 1.11.3

现象

用numpy实现了一个udf

udf注册到sparkSession

sparkSql使用这个udf

抛出异常

net.razorvine.pickle.PickleException: expected zero arguments for construction of ClassDict (for numpy.dtype)

解决方法

udf返回时,用python的函数转一下,问题解决。

上spark官网查看了一下文档,spark 2.2.0文档里面有一段

也就是说2.2.0后的sparkSql不能使用数据类型为numpy内置的dtype的数据!

转载:tech.dianwoda/2018/01/31/net-razorvine-pickle-pickleexception-expected-zero-arguments-for-construction-of-classdict-for-numpy-dtype/

本文标签: argumentsexpectedPickleExceptionConstructiondtype