一文教你快速上手PyFlink

本文介绍了PyFlink项目的目标及发展历程,详细解读了PythonTableAPI、PythonUDF等核心功能,并展示了相关示例。
简介:本文介绍了PyFlink项目的目标和发展历程,以及PyFlink目前的核心功能,包括Python Table API、Python UDF、向量化Python UDF、Python UDF Metrics、PyFlink依赖管理和Python UDF执行优化,同时也针对功能展示了相关demo。

作者|付典

本文介绍了PyFlink项目的目标和发展历程,以及PyFlink目前的核心功能,包括Python Table API、Python UDF、向量化Python UDF、Python UDF Metrics、PyFlink依赖管理和Python UDF执行优化,同时也针对功能展示了相关demo。本文主要分为4个部分:

  1. PyFlink介绍
  2. PyFlink相关功能
  3. PyFlink功能演示
  4. PyFlink下一步规划

PyFlink介绍

PyFlink是Flink的一个子模块,也是整个Flink项目的一部分,主要目的是提供Flink的Python语言支持。因为在机器学习和数据分析等领域,Python语言非常重要,甚至是最主要的开发语言。所以,为了满足更多用户需求,拓宽Flink的生态,我们启动了PyFlink项目。

image.png

PyFlink项目的目标主要有两点,第一点是将Flink的计算能力输出给Python用户,也就是我们会在Flink中提供一系列的Python API,方便对Python语言比较熟悉的用户开发Flink作业。

第二点,就是将Python生态基于Flink进行分布式化。虽然我们会在Flink中提供一系列的Python API来给Python用户来使用,但这对用户来说是有学习成本的,因为用户要学习怎么使用Flink的Python API,了解每一个API的用途。所以我们希望用户能在API层使用他们比较熟悉的 Python库的API,但是底层的计算引擎使用Flink,从而降低他们的学习成本。这是我们未来要做的事情,目前处于启动阶段。

image.png

下图是PyFlink项目的发展情况,目前发布了3个版本,支持的内容也越来越丰富。

image.png

PyFlink相关功能介绍

我们主要介绍PyFlink以下功能,Python Table API、Python UDF、向量化Python UDF、Python UDF Metrics、PyFlink依赖管理和Python UDF执行优化。

image.png

Python Table API

Python Table API的目的是为了让用户可以使用Python语言来开发Flink作业。Flink里面有三种类型的API,Process、Function和Table API,前两者是较为底层的API,基于Process和Function开发的作业,其逻辑会严格按照用户定义的行为进行执行,而Table API是较为高层的API,基于Table API开发的作业,其逻辑会经过一系列的优化之后进行执行。

Python Table API,顾名思义就是提供 Table API的Python语言支持。

image.png

以下是Python Table API开发的一个Flink作业,作业逻辑是读取文件,计算word count,然后再把计算结果写到文件中去。这个例子虽然简单,但包括了开发一个Python Table API作业的所有基本流程。

首先我们需要定义作业的执行模式,比如说是批模式还是流模式,作业的并发度是多少?作业的配置是什么。接下来我们需要定义source表和sink表,source表定义了作业的数据源来源于哪里,数据的格式是什么;sink表定义了作业的执行结果写到哪里去,数据格式是什么。最后我们需要定义作业的执行逻辑,在这个例子中是计算写过来的count。

image.png

以下是Python Table API的部分截图,可以看到它的数量和功能都比较齐全。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值