【问题标题】:Flink scala project depends on flink java project so java map called instead of scala mapFlink scala项目依赖于flink java项目所以调用java map而不是scala map
【发布时间】:2017-07-23 23:48:31
【问题描述】:

我想创建一个用 scala 编写的 flink 项目。

当我导入时

'flink-scala_2.11',
'flink-streaming-scala_2.11'
'flink-core', 

我可以运行如下代码:

val someEventScalaStream = myScalaStreamm.map{x=>x.Part3} (it is using scala map function)

但我看到每个:

flink-connector-rabbitmq_2.11
flink-connector-filesystem_2.11
flink-clients_2.11

所有这些都依赖于'flink-java'

因此,当所有这些都导入我的解决方案时,项目正在尝试使用 java 版本的 map 功能并且无法编译。

有什么办法吗?

谢谢。

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    一般来说,java 和 scala 的 api 被放在单独的包中。因此,请确保使用正确的。例如。 DataStream 你有

    Java:

    org.apache.flink.streaming.api.datastream.DataStream
    

    斯卡拉:

    org.apache.flink.streaming.api.scala.DataStream
    

    在这种情况下,建议在 scala 中导入:

    org.apache.flink.streaming.api.scala._
    

    如果这不涵盖您的问题,您能否在使用 map 函数的 java 版本时发布一个具体示例?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 2015-04-11
      • 2012-08-20
      相关资源
      最近更新 更多