开发者学堂课程【开源 Flink 极客训练营:PyFlink 快速上手】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/760/detail/13342
PyFlink 快速上手
内容介绍:
一.PyFlink 简介
二. PyFlink 功能介绍
三. PyFlink 功能演示
四. PyFlink 下一步规划
一. PyFlink 简介
PyFlink 是 Flink 的一个子模块,也是整个 Flink 项目的一部分,主要目的提供 Flink 的 Python 语言支持。Flink 是用Java 语言开发的,对外提供了 Java,scala, SQL 等编程语言的支持。支持 Python 语言的主要考虑是在机器学习、数据分析等领域,Python 非常重要,甚至是最主要的开发语言,许多机器学习专家、数据分析科学家甚至完全不懂Java,为了满足用户需求、拓宽各个生态,启动了 PyFlink 项目。
1、PyFlink 项目的目标
(1)将 Flink 的计算能力输出给 Python 用户。
在 Flink 中提供一系列的 Python API,方便对于 Python 语言比较熟悉的用户开发 Flink 作业。这是目前正在做的事情。
(2)将 Python 生态基于 Flink 进行分布式化。
在 Flink 中提供一系列 Python API 方便Python 用户使用,但对于用户来说存在学习成本,因为用户要学习如何使用 Flink 的 Python API,了解没一个 API 的用途,而有一些常用的 Python 库比如 Pandas 或者 NumPy,许多用户很熟悉,那么我们能否在 API层使用这些 Python 用户比较熟悉的 Python 库的 API,但是底层的计算使用 PyFlink,这样对于 Python 库比较熟悉的用户就可以使用自己熟悉的 API 进行开发,从而降低学习成本。这是未来需要做的事情,目前处于启动阶段。
2、PyFlink 项目的发展历程
PyFlink 项目起源于2019年4月份,目前发布了三个版本1.9,1.10和1.11,功能趋于成熟。在1.9版本中提供了 Python Table API 功能,在1.10版本中支持了Python UDF 以及 Python 依赖管理,用户可以在 Python Table API 中使用 Python UDF,而在最新发布的1.11版本中 PyFlink 也带来更多的功能,比如向量化 Python UDF, Python UDTF,UDF metrics 支持, Python ML pipeline API 等等,在性能优化上,利用 Cython 极大的优化了 Python UDF 的执行性能,同时也支持了在 Java Table 的 API 作业以及在纯 SQL 作业中使用 Python UDF,极大的扩展了 Python UDF 的使用范围。