问题: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的数据!