【異常】java.lang.ClassCastException: org.apache.spark.rdd.ShuffledRDD cannot be cast to org.apache.spark.streaming.kafka010.HasOffsetRanges


 

對應出異常的代碼是:val offsetRanges: Array[OffsetRange] = rdd.asInstanceOf[HasOffsetRanges].offsetRanges

做foreachRDD的DStream必須是直接從KafkaUtils.createDirectStream拿到的,才能轉換為kafkaRDD. 后面做其他操作的時候會把kafkaRDD轉換為非kafkaRDD。也就是說這個HasOffsetRanges接口,只有kafkaRDD這個實現類。所以如果從kafka拿到DStream,后面需要使用foreachRDD,那么這個DStream必須是直接從KafkaUtils.createDirectStream拿到,中間不能再做其他的操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM