我正尝试使用下面的代码在evaluate方法中开发一个带有drools规则引擎调用的udf:
Person person = new Person(gender);
KieServiceSerializer kszObj = new KieServiceSerializer();
KieServices ks = kszObj.getKieServices();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("ksession-rules"); //this line is causing error: Wrong arguments '"Male"': org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execute method public java.lang.String org.udf_drools_poc.UDFDrools.evaluate(java.lang.String)
kSession.insert(person);
kSession.fireAllRules();
person和ServiceSerializer都是序列化的。
此代码在本地运行良好(从ide执行时),但在通过配置单元执行时引发以下错误:
Wrong arguments '"Male"': org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execute method public java.lang.String org.udf_drools_poc.UDFDrools.evaluate(java.lang.String)
使用以下脚本调用udf:
create temporary function genderMap as 'org.udf_drools_poc.UDFDrools';
select genderMap("Male");
有什么建议吗?
谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!