hadoop - 错误的参数“男性”:org.apache.hadoop.hive.ql.metadata.HiveException | HiveUDF 中的 Drools KieSession
问题描述
我正在尝试使用以下代码在评估方法中开发一个带有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 和 KieServiceSerializer 都是序列化的。
此代码在本地运行良好(从 IDE 执行时),但通过 hive 执行时抛出以下错误:
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");
有什么建议么?
谢谢。
解决方案
推荐阅读
- asp.net-mvc - 从不同(强类型)视图发布到同一个控制器的操作
- ios - 在 SwiftUI 中将拖动限制为圆形边界
- java - 如何使用 Rest API 或一些 SDK Api 创建 Azure 事件中心
- java - 片段中的Textview未显示在活动中
- hibernate - JPA 懒惰的 loding 在一对多中不起作用
- ios - iOS UIScrollView 问题
- django - 如何使用 ColllectionField()?
- docker - Hashicorp Vault docker网络问题
- jenkins - 詹金斯不让我登录
- python - 我如何使排行榜工作?语法不正确