Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
火花罐';找不到Python模块_Python_Apache Spark_Pyspark - Fatal编程技术网

火花罐';找不到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

我正在尝试使用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(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目录中创建了Sy-IntIy.py.<强>,您就可以访问该包。\uuuu init\uuuu.py文件不需要包含任何内容


在这种情况下,一旦您在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
希望它能帮助你