如何从具有spark-eventhubs的事件中获取偏移量/序列号

时间:2017-04-12 18:24:21

标签: apache-spark spark-streaming azure-eventhub

this page上的代码,我们可以通过使用新的String(x)来获取事件的正文部分,因为x作为字节数组传递给我们。在使用这个spark-eventhubs库时,有没有获取事件数据的系统属性?我想了解有关序列号/偏移量或事件在此事件中心排队的时间的信息。

1 个答案:

答案 0 :(得分:0)

使用直接公开EventData的DirectStreams API

val inputDirectStream = EventHubsUtils.createDirectStreams(
      ssc,
      eventHubNamespace,
      progressDir,
      Map(eventHubName -> eventhubParameters))

inputDirectStream.foreachRDD { rdd =>
      rdd.flatMap(eventData => new String(eventData.getBody).split(" ").map(_.replaceAll(
        "[^A-Za-z0-9 ]", ""))).map(word => (word, 1)).reduceByKey(_ + _).collect().toList.
       foreach(println)
    }

// all you need here is eventData.getSystemProperties.getSequenceNumber