《Mars on Flink 实时数据流上的Pandas.pdf》由会员分享,可在线阅读,更多相关《Mars on Flink 实时数据流上的Pandas.pdf(37页珍藏版)》请在三个皮匠报告上搜索。
1、付典阿里巴巴高级技术专家、Apache Flink PMCMars on Mars on FlinkFlink:实时数据流上的实时数据流上的PandasPandas自我介绍2013年2016年Hadoop 开发Blink SQL 开发2019年至今PyFlink 建设Apache Flink PMC&CommitterIntel 大数据部门阿里巴巴实时计算部门背景及动机背景及动机Mars on Mars on FlinkFlink使用示例使用示例未来规划未来规划#1#2#3#4#1#1背景及动机背景及动机Pandas 简介Python Scientific Stack面向数据分析,用于数据探查
2、、数据预处理等fast:性能优异,利用 Cython、Numba 等加速计算powerful/flexible:功能强大,提供了丰富的 API,可以满足绝大多数数据处理类型任务的需要easy to use:简单易用,与各种可视化工具集成比较好不足:只能单机执行,受限于单台机器的物理资源,比如CPU、内存等Flink+Pandas解决 Pandas 库只能在单台机器运行的限制连接Flink 生态和 Pandas 生态,解锁更多应用场景WhyWhyFlink+PandasPandas UDF on Flink Table API&SQLHowHow扩展 Flink 现有的 API,提供 Panda
3、s UDF 支持对于用户来说,需要学习并使用 Flink API 进行作业开发已经在 PyFlink 中支持Pandas API over Flink engine提供 Pandas API,执行引擎使用 Flink对于用户来说,使用 Pandas API 进行作业开发当前的分布式 Pandas 解决方案df.groupby(word).sum()当前的分布式 Pandas 解决方案Koalas当前的分布式 Pandas 解决方案Koalas将 Pandas 作业转换成引擎中对应的功能要点当前的分布式 Pandas 解决方案BeamDataFrame当前的分布式 Pandas 解决方案Beam
4、DataFrame将数据按照一定的原则进行切分针对切分之后的数据,执行原有的Pandas 计算要点当前的分布式 Pandas 解决方案MarsMars 简介基于张量的分布式科学计算引擎,github:https:/ Numpy、Pandas、Scikit-learn 等 Python scientific stack 的分布式化可 100%兼容 Pandas 等单机 Python 库的语义支持K8s、Ray、YARN、Bare Metal 等多种部署模式基于自研的 Actor 模型,进行代码解耦,并解决 Python GIL 问题在公有云、阿里集团内部已经生产上线,作业规模达到 1000+,单
5、作业最大 12000 core+当前的分布式 Pandas 解决方案对比KoalasBeam DataFrameMars基本原理Pandas API 作业翻译成 Spark API 作业将数据切分成chunk,并利用Pandas API 处理chunk 数据将数据切分成chunk,并利用Pandas API 处理chunk 数据优化能力与 Spark SQL 引擎深度集成,充分利用 Spark SQL 引擎的能力进行优化与 Beam 引擎深度集成并进行优化Mars 引擎内部做了大量优化流批能力批流/批批Pandas API 兼容性非 100%兼容非 100%兼容目标 100%兼容Python
6、生态丰富度只支持 Pandas只支持 Pandas支持 Pandas/Numpy/SciPy等,与 Python 生态的其他数据处理库集成比较友好,比如TensorFlow、XGBoost、PyTorch等#2 2Mars on Mars on FlinkFlinkFlink Pandas 设计考量支持流/批两种执行模式尽可能 100%兼容 Pandas API如何处理无界数据集上的 Pandas 运算操作类型说明示例Element By Element 处理Batch By Batch 处理row-wise 操作计算结果只依赖单条数据df.applymap(lambda x:x*2)对每一条