为了账号安全,请及时绑定邮箱和手机立即绑定

在 Esper 中从 CSV 读取事件

在 Esper 中从 CSV 读取事件

慕尼黑8549860 2021-10-20 14:41:05
我正在尝试使用 CSVInputAdapter 从 CSV 读取几个事件,但我无法实现,这是我正在尝试的:首先,我遵循了文档http://esper.espertech.com/release-7.1.0/esper-reference/html_single/index.html#gettingstarted 的第一步我已经这样定义了 Person 事件:public class PersonEvent {    private String name;    private int age;    public PersonEvent() {        this.name = "NONE";        this.age = -1;    }    public PersonEvent(String name, int age) {        this.name = name;        this.age = age;    }    public String getName() {        return name;    }    public int getAge() {        return age;    }}然后实例化服务,添加事件类型并创建一个语句和一个侦听器,以便每次接收到 PersonEvent 时,它都会打印此人的姓名和年龄:EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider();engine.getEPAdministrator().getConfiguration().addEventType(PersonEvent.class);String epl = "select name, age from PersonEvent";EPStatement statement = engine.getEPAdministrator().createEPL(epl);statement.addListener((newData, oldData) -> {            String name = (String) newData[0].get("name");            int age = (int) newData[0].get("age");            System.out.println(String.format("Name: %s, Age: %d", name, age));        });我测试了它发送一个简单的事件并且它有效engine.getEPRuntime().sendEvent(new PersonEvent("Peter", 10));这是输出Name: Peter, Age: 10当我尝试从 CSV 文件读取事件时出现问题,我的 CSV 如下所示:name,ageJohn,3Anne,4这是我读取文件的方式:    AdapterInputSource source = new AdapterInputSource(new File("/path/input.csv"));    (new CSVInputAdapter(engine, source, "PersonEvent")).start();这是我收到的输出:Name: Peter, Age: 10Name: NONE, Age: -1Name: NONE, Age: -1可以看到,我收到Peter的信息,通过发送一个简单的事件处理,还有两行CSV,还可以,但是没有数据。如果我做错了什么,你能帮我吗?非常感谢。
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

可能是因为班级没有二传手?这可能是因为 JVM 没有为 Java 类上的方法定义任何顺序。第一个属性实际上可能是“年龄”而不是“姓名”。也尝试提供字段顺序。调试级别日志记录也可能对您有所帮助。


查看完整回答
反对 回复 2021-10-20
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信