本文来自于【阿里云官方镜像站: 】
原文链接:
我们需要先安装 PyFlink,可以通过 PyPI 获得,并且可以使用 pip install 进行便捷安装。
注意: 安装和运行 PyFlink 需要 Python 3.5 或更高版本。
除了扩展基类 ScalarFunction 之外,定义 Python UDF 的方法有很多。下面的示例显示了定义 Python UDF 的不同方法,该函数以 BIGINT 类型的两列作为输入参数,并返回它们的和作为结果。
下面是一个使用 Python UDF 的完整示例。
首先,您需要在“ / tmp / input”文件中准备输入数据。例如,
接下来,您可以在命令行上运行此示例:
通过该命令可在本地小集群中构建并运行 Python Table API 程序。您还可以使用不同的命令行将 Python Table API 程序提交到远程集群。
最后,您可以在命令行上查看执行结果:
在许多情况下,您可能希望在 Python UDF 中导入第三方依赖。下面的示例将指导您如何管理依赖项。
假设您想使用 mpmath 来执行上述示例中两数的和。Python UDF 逻辑可能如下:
要使其在不包含依赖项的工作节点上运行,可以使用以下 API 指定依赖项:
用户需要提供一个 requirements.txt 文件,并且在里面申明使用的第三方依赖。如果无法在群集中安装依赖项(网络问题),则可以使用参数“requirements_cached_dir”,指定包含这些依赖项的安装包的目录,如上面的示例所示。依赖项将上传到群集并脱机安装。
下面是一个使用依赖管理的完整示例:
首先,您需要在“/ tmp / input”文件中准备输入数据。例如,
其次,您可以准备依赖项需求文件和缓存目录:
接下来,您可以在命令行上运行此示例:
最后,您可以在命令行上查看执行结果:
PyFlink 为大家提供了一种非常方便的开发体验方式 - PyFlink Shell。当成功执行 python -m pip install apache-flink 之后,你可以直接以 pyflink-shell.sh local 来启动一个 PyFlink Shell 进行开发体验,如下所示:
不仅仅是简单的 ETL 场景支持,PyFlink 可以完成很多复杂场的业务场景需求,比如我们最熟悉的双 11 大屏的场景,如下:
关于上面示例的更多详细请查阅:
说道系列-如何在PyFlink-1-10中自定义Python-UDF/
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70011781/viewspace-2849244/ ,如需转载,请注明出处,否则将追究法律责任。