如何解析Spark 1.6中从Kafka Stream收到的Spark Streaming中的Proto Buf Mesage

时间:2017-06-07 13:29:01

标签: apache-spark apache-kafka protocol-buffers spark-streaming kafka-producer-api

您好我正在开发Spark Streaming项目。在这个项目中,我要从Kafka Stream(Proto Buf Message)收到Parse Data

我对在Kafka中解析Proto Buf Mesage一无所知。

我正在尝试理解下面的代码,以便开始解析protobuf消息。

def main(args:Array [String]){

val spark = SparkSession.builder.
  master("local")
  .appName("spark session example")
  .getOrCreate()

import spark.implicits._

val ds1 = spark.readStream.format("kafka").
  option("kafka.bootstrap.servers","localhost:9092").
  option("subscribe","student").load()

val ds2 = ds1.map(row=> row.getAs[Array[Byte]]("value")).map(Student.parseFrom(_))

val query = ds2.writeStream
  .outputMode("append")
  .format("console")
  .start()

query.awaitTermination()

}

有人可以为我提供一些如何逐步解析proto buf消息的例子吗? 我只需要一些关于如何在火花流应用程序中使用它的参考资料。

1 个答案:

答案 0 :(得分:0)

我以这种方式使用了结构化流:

body(fn)[[2]] <- substitute(x + t, list(t = t))