У меня проблемы при попытке распространить как файл модуля calculate_scores.py
, так и пакет model_lib
по рабочим узлам.Модуль calculate_scores
импортирует из пакета модуль model_lib.feature_generator
.(Я хочу распространить пакет, потому что есть относительный импорт в модули, которые я использую из него.) У меня есть следующие строки в записной книжке:
from calculate_scores import score_batch
sc.addPyFile("model_lib.zip")
sc.addPyFile("calculate_scores.py")
В какой-то момент я использую функцию score_batch
в pyspark udf и получите ошибку
File "calculate_scores.py", line 3, in <module>
from model_lib.feature_generator import FeatureGenerator
ImportError: No module named model_lib.feature_generator
Если я определю функцию score_batch()
в записной книжке (вместо импорта ее из модуля calculate_scores
), udf работает нормально и исполнителивсе можно найти в model_lib
.
Как я могу это исправить, чтобы исполнители все еще знали, где найти эту зависимость, если я импортирую функцию из ее модуля?