flink系列-11、PyFlink 核心功能介绍(整理自 Flink 中文社区)

时间:2020-05-18 09:16:04   收藏:0   阅读:389

视频地址

PyFlink 核心功能介绍

课程概要

今天的分享主要包含以下几个部分:

  1. PyFlink 的发展史。
  2. 介绍 PyFlink 的核心功能以及其背后的一些原理。
  3. PyFlink 的 demo 演示。
  4. PyFlink 社区扶持计划。

1.PyFlink 的发展史

技术分享图片

1.1、v1.8.x

  1. Flink 在1.8版本的时候就已经提供 Python API,只在Datase/Stream 上提供支持。
  2. 存在一些问题,比如:
    2.1 Table API 不支持 Python。
    2.2 两套各自独立实现的一个Python API。
    2.3 底层实现是JPython,JPython 无法支持 Python3.x。

1.2、v1.9.x

  1. 2019年8月发布。
  2. 支持 Python Table API。

1.3、v1.10.x

  1. 2020年2月发布。
  2. 提供了 Python、UDF 的支持。
  3. 提供 UDF 的依赖管理。

1.4、未来发展

  1. 提供 Pandas UDF的支持。
  2. 提供用户自定义的一些UDF Metrics。
  3. ML API。
  4. 在应用性方面,提供 SQL DDL 支持 Python UDF。

2.PyFlink 核心功能及原理介绍

1.Python Table API

技术分享图片
如上图所示,Table 接口主要包括一些 和 Table 相关的算子,这些算子可以分为两类:

2.WordCount

技术分享图片

3.Table API 架构

技术分享图片

1.Python UDF 架构

技术分享图片

2.Python UDF 的使用

1.Pyflink-1.9 版本中,Python API 中支持注册使用 java UDF,使用方法如下:

table_env.register_java_function("func1", "java.user.defined.function.class.name")

技术分享图片

2.Python UDF 的使用:

table_env.register_function("func1", python_udf)

技术分享图片

3.Python UDF 的定义方式

技术分享图片

4.依赖管理

  1. 依赖文件
table_env.add_python_file(file_path)
  1. 依赖存档(打包)文件
table_env.add_python_archive("py_env.zip", "myenv") 
# the files contained in the archive file can be accessed in UDF 
def my_udf(): 
       with open("myenv/py_env/data/data.txt") as f: 
  1. 依赖第三方项目
# commands executed in shell 
echo numpy==1.16.5 > requirements.txt 
pip download -d cached_dir -r requirements.txt --no-binary :all: 
# python code 
table_env.set_python_requirements("requirements.txt", "cached_dir")
  1. 指定Python Interpreter路径
table_env.get_config().set_python_executable("py_env.zip/py_env/bin/python")

1.Pandas UDF – 功能

技术分享图片

2.Pandas UDF - 性能

技术分享图片

3.User-defined Metrics

  1. Metric 注册
    技术分享图片
  2. Metric Scope
    技术分享图片
  3. Metric 类型
    • Counter
      技术分享图片
    • Gauge
      技术分享图片
    • Meter
      技术分享图片
    • Distribution (sum/count/min/max/mean)
      技术分享图片

3. PyFlink 的 demo 演示

核心功能 demo 的演示:
https://github.com/pyflink/playgrounds

4.PyFlink 社区扶持计划

原文:https://www.cnblogs.com/xiexiandong/p/12878642.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!