一開以為是自己導包導錯了,但是對比了一下之前的程序發現並沒有錯,
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誤導人-_-||