faq-更新udf对应的资源jar包,离线开发节点运行函数:逻辑用的依然是更新前的代码逻辑

问题背景

原来的函数有12个参数,更新了jar包,现在函数有13个参数:
faq-更新udf对应的资源jar包,函数逻辑用的依然是更新前的代码逻辑 - 图1
问题现象
自助分析执行更新后函数正常:
faq-更新udf对应的资源jar包,函数逻辑用的依然是更新前的代码逻辑 - 图2
离线开发节点内使用函数异常,运行节点报错:
faq-更新udf对应的资源jar包,函数逻辑用的依然是更新前的代码逻辑 - 图3

发现版本
所有版本

问题原因
自助分析单独执行sql,只会引用一个函数,不会有其他函数的底层引用jar包存在干扰;
但节点内sq代码里同时引用了多个函数,这些函数引用的jar包内存在相同的类;但更新函数的jar包只更新了对应函数下引用的jar包,其他函数引用的jar包代码未更新,造成类冲突
faq-更新udf对应的资源jar包,函数逻辑用的依然是更新前的代码逻辑 - 图4
faq-更新udf对应的资源jar包,函数逻辑用的依然是更新前的代码逻辑 - 图5

解决方案
将其他函数引用的底层jar包代码也更新下,但建议不要多个函数引用的jar包代码内存在相同的类;该问题是由于之前所有的函数都放在同一个jar包遗留发展下来导致,需要对函数引用的jar包进行治理。

作者:曹俊