Apache flink PyFlink UDF:何时使用矢量化与标量

Apache flink PyFlink UDF:何时使用矢量化与标量,apache-flink,pyflink,Apache Flink,Pyflink,在决定矢量化与标量PyFlink UDF时,是否有一组简单的规则可以遵循 根据,矢量化UDF具有以下优点:(1)更小的服务和调用开销(2)由于Numpy等LIB,矢量(尤其是数值)计算得到了高度优化 矢量化Python用户定义函数是通过在JVM和Python VM之间以箭头列格式传输一批元素来执行的函数。向量化Python用户定义函数的性能通常比非向量化Python用户定义函数高得多,因为序列化/反序列化开销和调用开销大大减少。此外,用户可以利用流行的Python库(如Pandas、Numpy等

在决定矢量化与标量PyFlink UDF时,是否有一组简单的规则可以遵循

根据,矢量化UDF具有以下优点:(1)更小的服务和调用开销(2)由于Numpy等LIB,矢量(尤其是数值)计算得到了高度优化

矢量化Python用户定义函数是通过在JVM和Python VM之间以箭头列格式传输一批元素来执行的函数。向量化Python用户定义函数的性能通常比非向量化Python用户定义函数高得多,因为序列化/反序列化开销和调用开销大大减少。此外,用户可以利用流行的Python库(如Pandas、Numpy等)来实现矢量化的Python用户定义函数。这些Python库经过高度优化,提供了高性能的数据结构和函数

问题1:是否总是首选矢量化自定义项

比方说,在我的用例中,我只想从一个JSON列中提取一些字段,这是Flink还不支持的,因此我需要定义我的udf,如:

@udf(…)
def从json中提取字段(json值、字段名称):
导入json
返回json.load(json_值)[字段名称]
问题2:在这种非数字的情况下,我是否也会从矢量化UDF中获益