python, pyspark导入自定义包

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
#将D:\dir1\dir2路径添加进系统路径
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任务时增加一个参数,把zip或py文件一起加载

spark-submit --master yarn --deploy-mode cluster --py-files hdfs:///dir1/dir2/file.zip /root/Demo6.py

然后python文件里就可以

import file_name

参考文献

[Python]自定义包及3种包导入方式

python导入自定义模块和包

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值