Python 无法在udf函数中使用numpy
我试图在spark kubernetes集群上运行一些代码Python 无法在udf函数中使用numpy,python,numpy,kubernetes,pyspark,Python,Numpy,Kubernetes,Pyspark,我试图在spark kubernetes集群上运行一些代码 "spark.kubernetes.container.image", "kublr/spark-py:2.4.0-hadoop-2.6" 我试图运行的代码如下 def getMax(row, subtract): ''' getMax takes two parameters - row: array with parameters subtract: normal value of the par
"spark.kubernetes.container.image", "kublr/spark-py:2.4.0-hadoop-2.6"
我试图运行的代码如下
def getMax(row, subtract):
'''
getMax takes two parameters -
row: array with parameters
subtract: normal value of the parameter
It outputs the value most distant from the normal
'''
try:
row = np.array(row)
out = row[np.argmax(row-subtract)]
except ValueError:
return None
return out.item()
from pyspark.sql.types import FloatType
udf_getMax = F.udf(getMax, FloatType())
我传递的数据帧如下所示
然而,我得到以下错误
ModuleNotFoundError: No module named 'numpy'
当我做一个stackoverflow serach时,我可以在纱线中的spark中发现类似的numpy导入错误问题
最疯狂的是我能把numpy从外面
import numpy as np
函数外部的命令未收到任何错误
为什么会这样?如何解决此问题或如何继续。感谢您的帮助
谢谢这只意味着您的工作节点没有安装numpy,您可以进入并安装它,也可以在调用时分发numpy库,如链接中所述。这将帮助您打包virtualenv,并且它有链接来运送您的virtualenv