Я пытаюсь запустить следующий скрипт Python локально, используя команду spark-submit:
import sys
sys.path.insert(0, '.')
from pyspark import SparkContext, SparkConf
from commons.Utils import Utils
def splitComma(line):
splits = Utils.COMMA_DELIMITER.split(line)
return "{}, {}".format(splits[1], splits[2])
if __name__ == "__main__":
conf = SparkConf().setAppName("airports").setMaster("local[2]")
sc = SparkContext(conf = conf)
airports = sc.textFile("in/airports.text")
airportsInUSA = airports\
.filter(lambda line : Utils.COMMA_DELIMITER.split(line)[3] == "\"United States\"")
airportsNameAndCityNames = airportsInUSA.map(splitComma)
airportsNameAndCityNames.saveAsTextFile("out/airports_in_usa.text")
Используемая команда (находясь в каталоге проекта):
spark-submit rdd/AirportsInUsaSolution.py
Я получаю эту ошибку:
Traceback (последний вызов был последним): файл "/home/gustavo/Documentos/TCC/python_spark_yt/python-spark-tutorial/rdd/AirportsInUsaSolution.py", строка4, из commons.Utils import Utils ImportError: Нет модуля с именем commons.Utils
Даже при том, что существует commons.Utils с классом Utils.
Кажется, что единственные imports
, которые он принимает, - это те, что получены от Spark, потому что эта ошибка сохраняется, когда я пытаюсь импортировать любой другой класс или файл из моего проекта.