Невозможно использовать numpy внутри функции udf - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь запустить некоторый код в кластере искровых 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 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())

Фрейм данных, который я передаю, имеет вид ниже

enter image description here

Однако я получаю следующую ошибку

ModuleNotFoundError: No module named 'numpy'

Когда я выполнял поиск в стеке, я мог найти похожую проблему numpy ошибка импорта при искре в пряже.

ImportError: Нет модуля с именем numpy на искровых рабочих

И самое смешное, что я могу импортировать numpy снаружи и

import numpy as np 
Команда

вне функции не выдает никаких ошибок.

Почему это происходит? Как это исправить или как go переслать. Любая помощь приветствуется.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...