我有以下项目结构,
work_directory:
merge.py
a_package
(即目录"work_directory"下的python文件merge.py
和目录a_package
(
我在merge.py中使用MRJob编写了一个MapReduce作业,其中我需要导入a_package
,就像from a_package import something
一样。但是我很难将a_package
上传到hadoop中。
我试过这种方法(https://mrjob.readthedocs.io/en/latest/guides/writing-mrjobs.html#using-其他python模块和包(:我写了
class MRPackageUsingJob(MRJob):
DIRS = ['a_package']
并从映射器内部导入代码
def mapper(self, key, value):
from a_package import something
我也试过这个:https://mrjob.readthedocs.io/en/latest/guides/setup-cookbook.html#uploading-你的源树
但它们都不起作用,它一直显示ImportError: No module named a_package
。
我该怎么办?
您只需要创建一个空文件"__init__.py";在文件夹中,要像使用包一样使用的内容。例如:
work_directory:
__init__.py
merge.py
a_package