Hi, 你是拿java写的udaf和pandas udaf做性能对比的吗,你是怎么测试的?你是在哪种场景下使用的pandas udaf?还有就是你用了to_pandas就是sink了,瓶颈就是在这,这玩意儿一般用在debug或者写it用的,不会拿来做性能测试的sink和上生产用的。
Best, Xingbo xiaoyue <18242988...@163.com> 于2021年3月1日周一 上午10:34写道: > Hi, Xingbo > 非常感谢您的回复,转成pandas是想利用pandas中的矩阵计算方法, > 项目需求,利用flink计算并将结果直接反馈给前端,所以应该是有source,无sink的过程, > 也尝试过定义pandas类型的udaf计算,将聚合结果返回,执行时间并未有太大变化。 > > 所以,想请问一下,对于刚说的那种业务情况,有合适的执行建议么?保证效率的情况下,利用pandas or numpy中的矩阵计算,非常感谢~! > > > > > > > > 在 2021-03-01 09:54:49,"Xingbo Huang" <hxbks...@gmail.com> 写道: > >Hi, > > > > >差别在于你用了to_pandas(),这个性能慢(这个需要把数据都collect回来到客户端,然后构造一个python的DataFrame,所以慢)。to_pandas一般都是拿来调试用的,很方便,但是性能不行,如果你对性能有要求,你换个sink就行了。 > > > >Best > >Xingbo > > > >xiaoyue <18242988...@163.com> 于2021年2月26日周五 下午12:38写道: > > > >> 不知道大家有没有遇到这个问题,流环境中链接Mysql数据库,利用DDL定义两个数据源表 source1, source2. > >> sql = "SELECT ID, NAME, IP, PHONE FROM source1 JOIN source2 ON > source1.ID > >> = source2.ID WHERE ID = '123456' AND DATE BETWEEN '20160701' AND > >> '20170307'" > >> # 获取Query结果 > >> query_table = env.sql_query(sql) > >> query_table.to_pandas() > >> 相同的处理过程,python和java的处理速度差很多,请问什么原因导致的呢? > >> 由于python只是封装了一下flink的接口,所以会是GIL的影响么? > >> 蹲一个大佬的解答?也欢迎遇到同样问题的小伙伴讨论,thx ! > >> > >> >