当前位置: 首页 > 知识库问答 >
问题:

Scala错误引发流式Kafka:对重载定义的模糊引用

薛扬
2023-03-14

我试图创建Kafka直接流与提供偏移外部在我的火花流模块,但它导致以下编译错误。

下面是创建Kafka直接流的代码

val kafkaParams = Map("metadata.broker.list" -> "kafka.brokers")
// testing only
val fromOffsets: Map[TopicPartition, Long] = Map[TopicPartition, Long]()

val kafkaStream = KafkaUtils.createDirectStream[Array[Byte], Array[Byte], DefaultDecoder, DefaultDecoder, Array[Byte]]
    (ssc, kafkaParams, fromOffsets, (mmd: MessageAndMetadata[Array[Byte], Array[Byte]]) => mmd.message())

下面是我遇到的编译错误。有什么想法/指针吗?

    ambiguous reference to overloaded definition,
both method createDirectStream in object KafkaUtils of type (jssc: org.apache.spark.streaming.api.java.JavaStreamingContext, keyClass: Class[Array[Byte]], valueClass: Class[Array[Byte]], keyDecoderClass: Class[kafka.serializer.DefaultDecoder], valueDecoderClass: Class[kafka.serializer.DefaultDecoder], recordClass: Class[Array[Byte]], kafkaParams: java.util.Map[String,String], fromOffsets: java.util.Map[kafka.common.TopicAndPartition,Long], messageHandler: org.apache.spark.api.java.function.Function[kafka.message.MessageAndMetadata[Array[Byte],Array[Byte]],Array[Byte]])org.apache.spark.streaming.api.java.JavaInputDStream[Array[Byte]]
and  method createDirectStream in object KafkaUtils of type (ssc: org.apache.spark.streaming.StreamingContext, kafkaParams: Map[String,String], fromOffsets: Map[kafka.common.TopicAndPartition,Long], messageHandler: kafka.message.MessageAndMetadata[Array[Byte],Array[Byte]] => Array[Byte])(implicit evidence$14: scala.reflect.ClassTag[Array[Byte]], implicit evidence$15: scala.reflect.ClassTag[Array[Byte]], implicit evidence$16: scala.reflect.ClassTag[kafka.serializer.DefaultDecoder], implicit evidence$17: scala.reflect.ClassTag[kafka.serializer.DefaultDecoder], implicit evidence$18: scala.reflect.ClassTag[Array[Byte]])org.apache.spark.streaming.dstream.InputDStream[Array[Byte]]
match expected type ?
[ERROR]     val kafkaStream = KafkaUtils.createDirectStream[Array[Byte], Array[Byte], DefaultDecoder, DefaultDecoder, Array[Byte]]

共有1个答案

公孙俊弼
2023-03-14

请使用kafka.common.TopicandPartition而不是org.apache.kafka.common.TopicPartition

 类似资料:
  • 我试图使用mockito在scala中模拟,如下所示 会有什么问题?

  • 为什么我有这个错误? 错误:(5,18)对重载定义的引用不明确,类型为(x$1:String)布尔的类String中的方法startsWith和类型为(x$1:String,x$2:Int)布尔的类String中的方法startsWith匹配预期的类型?水果过滤器(_.startswith==“AP”) 水果过滤器(_.startswith==“AP”)

  • 问题内容: 当我在终端上键入以启动REPL时,它将引发此错误 当我敲击并键入时,它再次抛出该错误 我正在使用并给 问题答案: 更新到新的Scala版本(2.10.3+)或将Java降级到Java 6/7。正如您在输出中所看到的,2.9.2在引入Java 8()之前就已经很久了,因此它们不能很好地协同工作。 这个重复的问题包含有关ubuntu的Java降级的确切说明。

  • 我想知道有没有人能帮我解决这个问题--我才刚接触C++,它给我带来了很多麻烦。 我正在尝试制作相对简单的套牌和卡类对象。 错误出现在“deck.cpp”中,它声明了一个卡片数组,然后我尝试用卡片对象填充数组。它说有对、和的未定义引用。 卡d.h Card.cpp

  • 我最近开始学习Scala和Play框架,在阅读Play框架的Anorm文档时,我得到了以下代码片段: 却被编译错误卡住了:

  • 问题内容: 在我的node.js应用程序中,我做了一个操作,以便可以使用客户端javascript中固有的btoa()和atob()函数,但由于某种原因未包含在node中。新目录显示在我的node_modules文件夹中,该文件夹本身与app.js一起位于根目录中。然后,确保将btoa- atob作为依赖项添加到根目录下的package.json文件中。 但是,由于某种原因,它仍然无法正常工作。