【异常】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