KafkaUtils.createDirectStream报错Cannot resolve symbol createDirectStream

一开以为是自己导包导错了,但是对比了一下之前的程序发现并没有错,

import org.apache.spark.streaming.kafka.{HasOffsetRanges, KafkaUtils, OffsetRange}

后来又怀疑是不是自己搞错版本了,检查了好几次,在另外一台电脑上也是同样的pom啊

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-streaming_2.11</artifactId>
    <version>1.6.0</version>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-streaming-kafka_2.11</artifactId>
    <version>1.6.0</version>
</dependency>

后来又猜是不是哪里有隐式转换啊,因为我把KafkaUtils.createDirectStream放到一个函数中就不报错了,奇怪了

KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc,kafkaParams,topics)

搞了好久,最后是一个让我哭笑不得的原因导致的,topic的类型应该是Set,弄成Array了(话说Set确实更合理哈,自动去除重复的topic),说来也是气人,topic类型错了,IDEA就应该把错误标在topics上,标在createDirectStream误导人-_-||

原文地址:https://www.cnblogs.com/144823836yj/p/11108357.html