打包库
查看库
查看安装的库,以及依赖的库
如下:
pip install BeautifulSoup4
执行结果:
Requirement already satisfied: BeautifulSoup4 in d:\program files\python38\lib\site-packages (4.9.3)
Requirement already satisfied: soupsieve>1.2 in d:\program files\python38\lib\site-packages (from BeautifulSoup4) (2.2.1)
可知安装了 BeautifulSoup4 库,该库还依赖 soupsieve 库
找到库所在的目录
在 python目录/Lib/site-packages 找到相应的文件夹,查找方式参见 链接
bs4
soupsieve
打 zip 压缩包
将 bs4、soupsieve 打成 .zip 压缩包
注意:打开压缩包,看到的文件夹如下图:
上传到 HDFS
上传到 HDFS ,供其他服务器使用,如:上传到 hdfs的根目录 packages.zip
使用方式一:修改代码
需要修改代码,执行命令时没有变化
有两种修改方式
修改方式一:创建 SparkContext 时设置
sc = SparkContext(conf=conf,pyFiles=pyFiles)
修改方式二:使用 sparkContext.addPyFile() 方法
应用场景:创建 SparkSession 对象后,可通过 sparkContext.addPyFile() 方法设置
# 创建 SparkSession 对象
spark = SparkSession.builder.\
appName("test").\
master("local[*]").\
enableHiveSupport().\
getOrCreate()
# 通过 SparkSession 对象获取 sparkContext 对象,然后调用 addPyFile() 设置
spark.sparkContext.addPyFile("hdfs:///yuqing/packages/yuqing_ods_dwd.zip")
导包
注意: 不能在文件顶部导包 from bs4 import BeautifulSoup
执行上面的代码后,即:加载 .zip 文件后,才能导包,否则报错
提示:可以在 函数中导包
执行程序方式一:通过 python3 命令
这种方式可以用 python3 命令,在 服务器上 调试执行
python3 程序.py
执行程序方式二:通过 spark-submit 命令
这种方式,执行 spark-submit 命令时,不需要额外增加参数
spark-submit --master yarn 程序.py
方式二:不修改代码
不需要修改代码,但执行命令要指定库所在的位置
导包
正常导包即可,不需要额外处理
执行程序:通过 spark-submit 命令
使用 spark-submit 命令执行时,指定 .zip 路径
spark-submit --master yarn --py-files hdfs:///packages.zip 程序.py
注意: hdfs:/// 后面是 3个 /
