在Scala中处理Kafka消息字节数组

时间:2017-06-26 14:53:17

标签: scala apache-spark apache-kafka spark-streaming consumer

我正在尝试使用Spark Streaming和Kafka来提取和处理从Web服务器收到的消息。

我正在测试https://github.com/dibbhatt/kafka-spark-consumer/blob/master/README.md中提到的消费者,以利用它提供的额外功能。

作为第一步,我试图使用提供的示例来查看它是如何发挥作用的。但是,我在实际看到有效载荷中的数据时遇到了困难。

查看以下函数的结果:

ReceiverLauncher.launch

我可以看到它返回一个RDD集合,每个类型为:

MessageAndMetadata[Array[Byte]]

我现在陷入困境,并且不知道如何解析这个并查看实际数据。 Web上使用Spark附带的使用者的所有示例都会创建一个迭代器对象,遍历它并处理数据。但是,来自此自定义使用者的返回对象并不能为我提供任何迭代器接口。

RDD中有getPayload()方法,但我不知道如何从中获取数据。

我的问题是:

  1. 这个消费者真的是生产环境的好选择吗?从它的外观来看,它提供的功能和它提供的抽象似乎非常有前景。

  2. 有人试过吗?有人知道如何获取数据吗?

  3. 提前致谢,

1 个答案:

答案 0 :(得分:-1)

需要将

getPayload()转换为String,例如

new String(line.getPayload())