JavaStreamingContext jsc = new JavaStreamingContext(conf, Seconds.apply(slice));
JavaPairInputDStream<String, String> kafkaAction = KafkaUtils
.createDirectStream(jsc, String.class, String.class,
StringDecoder.class, StringDecoder.class, kafkaParams, actTopics);
// Transaction.
kafkaAction.foreachRDD(new VoidFunction<JavaPairRDD<String, String>>() {
@Override
public void call(JavaPairRDD<String, String> rdd) throws Exception {
// rdd.rdd()拿到KafkaRDD
// JavaPairRDD只是在原始scala的RDD外层做了一层封装,
// 如果想要拿到原来的RDD,需要调用rdd()方法,获取JavaPairRDD的属性rdd,
// 这样得到的就是KafkaRDD,而KafkaRDD实现了HasOffsetRanges接口,
// 可以拿到这个RDD,读取Kafka的offset、partition等信息
HasOffsetRanges hasOffsetRanges = (HasOffsetRanges) rdd.rdd();
for (OffsetRange range : hasOffsetRanges.offsetRanges()) {
Sys
Spark-streaming-kafka使用Java版本获取RDD信息
最新推荐文章于 2023-01-17 17:31:11 发布
本文介绍如何使用Java API在Spark-streaming中连接Kafka,获取实时数据流,并进行处理。通过创建DStream,设置Kafka参数,从特定主题消费消息,将数据转换为RDD,实现数据流的捕获和分析。
摘要由CSDN通过智能技术生成