尝试在PatternStream上选择时出现“输入不匹配:预期为元组类型”

午夜1247

我在测试新的Flink 1.0.0功能时遇到了一些麻烦。我一直在修改CEP,但尚未设法运行一个简单的演示代码:

val pattern : Pattern[TrafficEvent, _] = Pattern.begin[TrafficEvent]("start")
val patternStream = CEP.pattern(stream.javaStream, pattern);

class MyPatternSelectFunction extends PatternSelectFunction[TrafficEvent, TrafficEvent] {
    override def select(pattern : java.util.Map[String, TrafficEvent]) : TrafficEvent ={
        pattern.get("start")
    }
}
val alerts = patternStream.select(new MyPatternSelectFunction())

该代码可以很好地编译,并且maven不会显示任何警告。TrafficEvent是一个几乎没有简单字段的类,stream是该类的Scala DataStream。当代码在Flink上运行时,将显示该错误。它运行一秒钟,然后代码退出,并显示以下错误消息:

该程序完成,但有以下异常:

  Input mismatch: Tuple type expected.
            org.apache.flink.api.java.typeutils.TypeExtractor.validateInputType(TypeExtractor.java:878)
            org.apache.flink.api.java.typeutils.TypeExtractor.getUnaryOperatorReturnType(TypeExtractor.java:302)
            org.apache.flink.cep.PatternStream.select(PatternStream.java:64)
            com.demo.DemoTraffic$.main(DemoTraffic.scala:311)

我试图通过构建像这样的静态类将功能迁移到Java(也许有一些奇怪的问题,从Scala调用API):

public static DataStream<DemoTraffic.trafficEvent>  getStreamByPattern(DataStream<DemoTraffic.trafficEvent> stream) {
  Pattern<DemoTraffic.trafficEvent, ?> pattern = Pattern.<DemoTraffic.trafficEvent>begin("start");
  PatternStream<DemoTraffic.trafficEvent> patternStream = CEP.pattern(stream, pattern);
  DataStream<DemoTraffic.trafficEvent> rvalue = patternStream.select(new PatternSelectFunction<DemoTraffic.trafficEvent, DemoTraffic.trafficEvent>() {
    @Override
    public DemoTraffic.trafficEvent select(Map<String, DemoTraffic.trafficEvent> pattern) throws Exception {
      return pattern.get("start");
    }
  });
  return rvalue;
}

但是结果是完全相同的,并且在PatternStream.select行中引发了相同的错误。关于我可以尝试或做错了什么的任何提示?如您所见,该模式非常愚蠢,并且仅用于测试目的。它仅接受所有事件,并作为响应返回该事件。使用Scala 2.10版本的Flink是1.0.0。

谢谢

蒂尔·罗尔曼(Till Rohrmann)

我认为这TrafficEvent是一个Scala案例类。CEP库是为Flink的Java API编写的,因此尚不支持Scala案例类。

解决方法是,您可以将案例类转换为普通的Scala类。

还有一张JIRA票证,用于跟踪CEP Scala API的开发。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在尝试匹配元组时出现类型不匹配错误?

来自分类Dev

为什么在尝试匹配元组时出现类型不匹配错误?

来自分类Dev

类型不匹配:预期为&-ptr,尝试将向量用作迭代器时发现i32

来自分类Dev

错误:类型不匹配:尝试实现冒泡排序时,出现了预期的'usize'和'&usize'

来自分类Dev

类型不匹配:预期为Integer但为Float

来自分类Dev

尝试通过VBA更新查询时出现访问查询SQL类型不匹配错误

来自分类Dev

尝试在 vba 中使用嵌套公式时出现“类型不匹配”错误

来自分类Dev

TypeError:“ ReadFile”操作的输入“ filename”的类型为float32,与预期的字符串类型不匹配

来自分类Dev

Jython @property SyntaxError:输入不匹配”预期为CLASS

来自分类Dev

Kotlin:类型推断失败。预期的类型不匹配:推断的类型为MutableList <Long?>,但预期的是MutableCollection <Long>

来自分类Dev

“ TypeError:“ ResourceApplyAdagradDA”操作的输入“ global_step”的类型为int32的类型与预期的int64类型不匹配。” 这是什么错误?

来自分类Dev

尝试在通用类中应用lambda表达式时出现类型不匹配的编译错误

来自分类Dev

在VBscript中,尝试将数组列表中的每个项目拆分为单个数组时,出现类型不匹配错误

来自分类Dev

尝试检查单元格是否包含整数时出现运行时错误 13 类型不匹配

来自分类Dev

尝试增加文本编号时,VBA类型不匹配

来自分类Dev

C ++模板:“参数的类型/值不匹配”和“预期为int的常量类型,为int”

来自分类Dev

TensofrlowJS输入与模型预期输入不匹配

来自分类Dev

fName设置为Variant,如果GetOpenFileName函数未选择文件,则尝试停止宏时仍显示不匹配错误

来自分类Dev

Tensorflow TypeError: 'Switch' Op 的输入 'pred' 的类型 float32 与预期的 bool 类型不匹配

来自分类Dev

发出HTTP请求时出现类型不匹配错误

来自分类Dev

映射列标题时出现类型不匹配错误

来自分类Dev

索引&str时出现“错误:类型不匹配”

来自分类Dev

调用CWnd :: InvokeHelper时出现类型不匹配错误

来自分类Dev

类型推断失败。预期类型不匹配

来自分类Dev

预期类型与收到的类型不匹配

来自分类Dev

类型不匹配:推断的类型为NameFragment但预期使用上下文-Kotlin

来自分类Dev

类型不匹配:connectedcompany 已定义为冲突类型 Any(预期节点)

来自分类Dev

neo4j错误:类型不匹配:预期为Float或Integer,但为Node

来自分类Dev

为Either编写Functor实例时类型不匹配

Related 相关文章

  1. 1

    为什么在尝试匹配元组时出现类型不匹配错误?

  2. 2

    为什么在尝试匹配元组时出现类型不匹配错误?

  3. 3

    类型不匹配:预期为&-ptr,尝试将向量用作迭代器时发现i32

  4. 4

    错误:类型不匹配:尝试实现冒泡排序时,出现了预期的'usize'和'&usize'

  5. 5

    类型不匹配:预期为Integer但为Float

  6. 6

    尝试通过VBA更新查询时出现访问查询SQL类型不匹配错误

  7. 7

    尝试在 vba 中使用嵌套公式时出现“类型不匹配”错误

  8. 8

    TypeError:“ ReadFile”操作的输入“ filename”的类型为float32,与预期的字符串类型不匹配

  9. 9

    Jython @property SyntaxError:输入不匹配”预期为CLASS

  10. 10

    Kotlin:类型推断失败。预期的类型不匹配:推断的类型为MutableList <Long?>,但预期的是MutableCollection <Long>

  11. 11

    “ TypeError:“ ResourceApplyAdagradDA”操作的输入“ global_step”的类型为int32的类型与预期的int64类型不匹配。” 这是什么错误?

  12. 12

    尝试在通用类中应用lambda表达式时出现类型不匹配的编译错误

  13. 13

    在VBscript中,尝试将数组列表中的每个项目拆分为单个数组时,出现类型不匹配错误

  14. 14

    尝试检查单元格是否包含整数时出现运行时错误 13 类型不匹配

  15. 15

    尝试增加文本编号时,VBA类型不匹配

  16. 16

    C ++模板:“参数的类型/值不匹配”和“预期为int的常量类型,为int”

  17. 17

    TensofrlowJS输入与模型预期输入不匹配

  18. 18

    fName设置为Variant,如果GetOpenFileName函数未选择文件,则尝试停止宏时仍显示不匹配错误

  19. 19

    Tensorflow TypeError: 'Switch' Op 的输入 'pred' 的类型 float32 与预期的 bool 类型不匹配

  20. 20

    发出HTTP请求时出现类型不匹配错误

  21. 21

    映射列标题时出现类型不匹配错误

  22. 22

    索引&str时出现“错误:类型不匹配”

  23. 23

    调用CWnd :: InvokeHelper时出现类型不匹配错误

  24. 24

    类型推断失败。预期类型不匹配

  25. 25

    预期类型与收到的类型不匹配

  26. 26

    类型不匹配:推断的类型为NameFragment但预期使用上下文-Kotlin

  27. 27

    类型不匹配:connectedcompany 已定义为冲突类型 Any(预期节点)

  28. 28

    neo4j错误:类型不匹配:预期为Float或Integer,但为Node

  29. 29

    为Either编写Functor实例时类型不匹配

热门标签

归档