spark3.0-python教程:引入第三方库

打包库

查看库

查看安装的库,以及依赖的库

如下:

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个 /


原文出处:/show_1IX3HAQMcI4P.html