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,希望社区越做越大,辛苦了!
>

回复