Hi, 补充回答两点 1. 现在Table上是支持sliding window和Tumpling Window的Pandas UDAF[1]的, 在1.13会支持session window的UDAF的支持。对于datastream上window的支持,对于上述几种window,你可以转到table上去操作,对于自定义window,datastream会在1.13支持。
2. 关于性能问题,如果你不使用Python UDFs的话,本质就是跑的Java的代码,python起的作用只是在客户端编译JobGraph的作用,所以不存在说Python sql_update的运行性能比Java的慢,因为实际运行的代码是一模一样的。对于你使用了Python UDF的话,由于相比Java UDF, 多了IPC的通信开销,以及Python本身的性能就不如Java Code,目前性能差别大概在6到7倍,我们也一直在性能上做努力,未来希望做到的是完全赶上Java code,甚至C code的性能。 [1] https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/python/table-api-users-guide/udfs/vectorized_python_udfs.html#vectorized-aggregate-functions Best, Xingbo xiaoyue <[email protected]> 于2021年3月16日周二 上午11:42写道: > 您好, > 目前同样在做pyflink 结合pandas的分布式计算调研和尝试,对于您的问题,仅有一些经验性的分享。 > pyflink以后应该都会集成到DataStream,所以应该不会再支持DataSet; > 不建议在计算中间采用 table.to_pandas()的方式进行table和dataFrame互转,会影响计算效率; > 目前采用的计算效率较好的方式,是定义pandas类型的udf/udaf方式,但相较java版接口同样的方式,pyflink还是会慢很多; > 个人感觉,pyflink耗时较多的地方,还是sql_query的操作,相同sql语句,执行效率上较java差别还是很大的。 > 以上仅个人使用感觉,若存在问题,欢迎路过大佬批评指正~ > 还有,因为调研相同领域,希望能交流调研新发现,感谢~祝好~ > > > > > [email protected] > > 发件人: qian he > 发送时间: 2021-03-14 18:59 > 收件人: user-zh-flink > 主题: pyflink使用的一些疑问 > 你好, > > > 最近项目想使用flink进行分布式计算,之前项目是Python的pandas项目,想尝试用pyflink进行项目改造,在使用dataset做批处理时,对于Java的版本没有相关map > reduce函数,所以有以下疑问: > 1.Python flink的SDK还没支持dataset吗? > 2.是不是有其他替代方法? > 3.如果还没支持,有计划支持的时间吗? > 4.flink table为啥不支持map reduce操作? > 5.我们项目使用dataframe来处理数据,能放到flink上做分布式运算吗?dataframe直接转化为table的方式,table不支持map > reduce操作,对应pandas项目改造成flink,有什么好的建议么? > 6. datastream api为什么没有实现Windows方法?后面版本会支持吗? > > 非常感谢,十分看好flink,希望社区越做越大,辛苦了! >
