KafkaRDD scala最小的例子

时间:2016-03-09 00:48:39

标签: apache-kafka spark-streaming

我试图使用KafkaRDD获得一个运行示例:

val kafkaParams = Map("metadata.broker.list" -> "localhost:9092")
val offsetRanges = Array(
    OffsetRange("topic", 0, 0, 2)
)
val rdd = KafkaUtils.createRDD[String, String, StringDecoder, StringDecoder](sc, kafkaParams, offsetRanges)
rdd.map(x => println(x)).collect()

res: Array[Unit] = Array((), ())

我一直小心创造"主题"用一个分区写两条消息,hello,world。

我可以得到看起来像是正确的RDD,但我怎样才能访问其内容?我错过了什么吗?

谢谢,E。

1 个答案:

答案 0 :(得分:3)

问题是这一行,我相信:

rdd.map(x => println(x)).collect()

RDD的工作方式,rdd.map在执行程序上运行。当你println时,它会将stdout打印给执行者。要将其打印到驱动程序应用程序中的stdout,请尝试改为:

rdd.collect().map(x => println(x))