火花罐';找不到Python模块
我正在尝试使用spark submit命令在本地运行以下Python脚本:火花罐';找不到Python模块,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我正在尝试使用spark submit命令在本地运行以下Python脚本: 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(spli
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")
使用的命令(在项目目录中时):
我不断地发现这个错误:
回溯(最近一次调用上次):文件
“/home/gustavo/Documentos/TCC/python_spark_yt/python spark tutorial/rdd/AirportsInUsaSolution.py”,
第4行,在
从commons.Utils导入Utils ImportError:没有名为commons.Utils的模块
即使有一个commons.Utils和一个Utils类
它似乎只接受来自Spark的导入,因为当我尝试从我的项目导入任何其他类或文件时,这个错误仍然存在
from pyspark import SparkContext, SparkConf
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)
sc.addPyFile('.../pathto commons.zip')
from commons import Utils
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")
是的,它只接受来自火花的。您可以压缩所需的文件(Utils、numpy)等,并在spark submit中指定参数--py files
spark-submit --py-files rdd/file.zip rdd/AirportsInUsaSolution.py
是的,它只接受来自火花的。您可以压缩所需的文件(Utils、numpy)等,并在spark submit中指定参数--py files
spark-submit --py-files rdd/file.zip rdd/AirportsInUsaSolution.py
Python将目录视为包,您需要在该目录中创建“强”>\uuuu init\uuuu.py文件不需要包含任何内容
在这种情况下,一旦在Cuxon目录中创建了
在这种情况下,一旦您在commons目录中创建了\uuu init\uuuuuuuuuuuupy,您将能够访问该包。创建一个名为:
Utils.py
的python脚本,该脚本将包含:
import re
class Utils():
COMMA_DELIMITER = re.compile(''',(?=(?:[^"]*"[^"]*")*[^"]*$)''')
将此Utils.py
python脚本放在commons
文件夹中,并将此文件夹放在工作目录中(键入pwd
了解它)。然后可以导入Utils
类:
from commons.Utils import Utils
希望它能帮助您。创建一个名为:
Utils.py的python脚本,该脚本将包含:
import re
class Utils():
COMMA_DELIMITER = re.compile(''',(?=(?:[^"]*"[^"]*")*[^"]*$)''')
将此Utils.py
python脚本放在commons
文件夹中,并将此文件夹放在工作目录中(键入pwd
了解它)。然后可以导入Utils
类:
from commons.Utils import Utils
希望它能帮助你