python导入自定义包
在python中,py文件是一个模块,可以import导入。
如果想导入一系列功能的多个py文件,可以把这些文件放入一个包里,这个包里需要一个__init__.py文件。init.py的作用就是把文件夹变成一个python模块。
情况1:当前目录下的py文件
比如当前目录下有个mmm.py文件,里面写了fun1函数和fun2函数,你可以
import mmm
mmm.fun1()
mmm.fun2()
或者
from mmm import fun1,fun2
fun1()
fun2()
情况2:当前目录下的包
比如当前目录下有一个文件夹myPackage, 里面有__init__.py和mmm.py,mmm.py里有fun1和fun2两个函数,你可以
import myPackage.mmm
myPackage.mmm.fun1()
myPackage.mmm.fun2()
或者
from myPackage.mmm import fun1,fun2
fun1()
fun2()
情况3:任意目录下的包或py文件
比如你有一个myPackage包,里面有__init__.py和mmm.py,mmm.py里有fun1和fun2两个函数,但是放在d盘任意的/dir1/dir2/目录下,你可以
import sys
sys.path.append(r"D:\dir1\dir2")
from myPackage.mmm import fun1,fun2
fun1()
fun2()
'''或者
import myPackage.mmm
myPackage.mmm.fun1()
myPackage.mmm.fun2()
'''
pyspark导入自定义包
如果有一个自定义文件file_name.py,是很多代码都需要导入这个文件的函数。那么可以把file_name.py压缩成file.zip,放在hdfs的/dir1/dir2/目录下,也可以放在正常目录下。使用addPyFile函数后就可以导入file_name这个模块了。
spark.sparkContext.addPyFile("hdfs:///dir1/dir2/file.zip")
import file_name
参考文献
[Python]自定义包及3种包导入方式
python导入自定义模块和包
|