Python 版 WordCount 快速入门

本指南将向你展示如何设置 Python 开发环境,获取 Apache Beam SDK for Python,以及运行示例管道。

如果你有兴趣为 Apache Beam Python 代码库贡献代码,请查看 贡献指南

Python SDK 支持 Python 3.8、3.9、3.10、3.11 和 3.12。Beam 2.48.0 是最后一个支持 Python 3.7 的版本。

设置你的开发环境

有关详细信息,请查看 设置你的开发环境

获取 Apache Beam

创建并激活虚拟环境

虚拟环境是一个目录树,包含其自己的 Python 发行版。要创建虚拟环境,请运行

python -m venv /path/to/directory
PS> python -m venv C:\path\to\directory

每个要使用虚拟环境的 shell 都需要激活它。激活它会设置一些环境变量,这些变量指向虚拟环境的目录。

要激活 Bash 中的虚拟环境,请运行

. /path/to/directory/bin/activate
PS> C:\path\to\directory\Scripts\activate.ps1

也就是说,执行你创建的虚拟环境目录下的 activate 脚本。

有关使用其他 shell 的说明,请查看 venv 文档

下载并安装

从 PyPI 安装最新的 Python SDK

pip install apache-beam
PS> python -m pip install apache-beam

额外需求

上面的安装不会安装使用 Google Cloud Dataflow 运行器等功能所需的所有额外依赖项。以下将重点介绍不同功能所需的额外软件包。可以使用类似 pip install 'apache-beam[feature1,feature2]' 的命令安装多个额外需求。

执行管道

Apache Beam 示例 目录包含许多示例。所有示例都可以通过传递示例脚本中描述的必需参数在本地运行。

例如,运行 wordcount.py,使用以下命令

python -m apache_beam.examples.wordcount --input /path/to/inputfile --output /path/to/write/counts
python -m apache_beam.examples.wordcount --input /path/to/inputfile \
                                         --output /path/to/write/counts \
                                         --runner SparkRunner
# As part of the initial setup, install Google Cloud Platform specific extra components. Make sure you
# complete the setup steps at /documentation/runners/dataflow/#setup
pip install apache-beam[gcp]
python -m apache_beam.examples.wordcount --input gs://dataflow-samples/shakespeare/kinglear.txt \
                                         --output gs://<your-gcs-bucket>/counts \
                                         --runner DataflowRunner \
                                         --project your-gcp-project \
                                         --region your-gcp-region \
                                         --temp_location gs://<your-gcs-bucket>/tmp/
This runner is not yet available for the Python SDK.

管道完成后,你可以在指定输出路径查看输出文件。例如,如果你为 --output 参数指定 /dir1/counts,则管道会将文件写入 /dir1/,并按顺序命名文件,格式为 counts-0000-of-0001

后续步骤

如果你遇到任何问题,请随时 联系我们