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