1)我的EventHUB中有32个分区。 2)我想从所有这些32分区的特定seqNO开始读取。 3)所以我已经加载了seqNO和 4)现在,位置图如下所示传递给EventHubsConf。
5)使用此ehConf如下创建DirectStream
与其从位置图中读取提到的位置,也不如从中读取位置。我的工作使用自己的seqNO
尝试过Azure / DataBricks文档
可变职位= collection.immutable.MapNameAndPartition,EventPosition
for (partitionId <- 0 until 32 )
{
positions += (new NameAndPartition("myHUBName", partitionId)) -> EventPosition.fromSequenceNumber(untilOffset.toLong)
}
// untilOffset是一个seqNO值(例如234,456等)
Map(myHUBName-12-> 56,myHUBName-18-> 69,myHUBName-13-> 160,myHUBName-17-> 287,myHUBName-15-> 440,myHUBName-1-> 671,myHUBName-19 -> 141,myHUBName-31-> 66,myHUBName-0-> 196,myHUBName-14-> 88,myHUBName-24-> 1006,myHUBName-30-> 106,myHUBName-28-> 72,myHUBName-4- > 91,myHUBName-8-> 172,myHUBName-20-> 692,myHUBName-10-> 92,myHUBName-25-> 104,myHUBName-9-> 447,myHUBName-3-> 238,myHUBName-5-> 383,myHUBName-7-> 52,myHUBName-11-> 147,myHUBName-23-> 157,myHUBName-27-> 205,myHUBName-29-> 117,myHUBName-21-> 30,myHUBName-26-> 60 ,myHUBName-22-> 107,myHUBName-6-> 222,myHUBName-2-> 58,myHUBName-16-> 59)
val ehConf = EventHubsConf(ConnectionString) .setStartingPositions(位置) .setConsumerGroup(“ $ Default”) .setMaxEventsPerTrigger(80)
val directStream = EventHubsUtils.createDirectStream(ssc,ehConf)
val eventStream = directStream.map(messageStr => {
var event = new String(messageStr.getBytes)
event
})
19/07/02 07:42:07 INFO EventHubsDirectDStream:EH:XXXXX的批处理开始于1562053320000 ms OffsetRange(partitionId:0 | fromSeqNo:195 | untilSeqNo:196) OffsetRange(partitionId:1 | fromSeqNo:670 |直到SeqNo:671) OffsetRange(partitionId:2 | fromSeqNo:57 | untilSeqNo:58) OffsetRange(partitionId:3 | fromSeqNo:237 | untilSeqNo:238) OffsetRange(partitionId:4 | fromSeqNo:91 | untilSeqNo:91) OffsetRange(partitionId:5 | fromSeqNo:382 | untilSeqNo:383) OffsetRange(partitionId:6 | fromSeqNo:221 | untilSeqNo:222) OffsetRange(partitionId:7 | fromSeqNo:52 | untilSeqNo:52) OffsetRange(partitionId:8 | fromSeqNo:171 |直到SeqNo:172) OffsetRange(partitionId:9 | fromSeqNo:446 | untilSeqNo:447) OffsetRange(partitionId:10 | fromSeqNo:91 | untilSeqNo:92) OffsetRange(partitionId:11 | fromSeqNo:146 | untilSeqNo:147) OffsetRange(partitionId:12 | fromSeqNo:56 | untilSeqNo:56) OffsetRange(partitionId:13 | fromSeqNo:159 | untilSeqNo:160) OffsetRange(partitionId:14 | fromSeqNo:87 | untilSeqNo:88) OffsetRange(partitionId:15 | fromSeqNo:439 | untilSeqNo:440) OffsetRange(partitionId:16 | fromSeqNo:58 | untilSeqNo:59) OffsetRange(partitionId:17 | fromSeqNo:286 | untilSeqNo:287) OffsetRange(partitionId:18 | fromSeqNo:69 | untilSeqNo:69) OffsetRange(partitionId:19 | fromSeqNo:141 | untilSeqNo:141) OffsetRange(partitionId:20 | fromSeqNo:691 | untilSeqNo:692) OffsetRange(partitionId:21 | fromSeqNo:30 | untilSeqNo:30) OffsetRange(partitionId:22 | fromSeqNo:106 | untilSeqNo:107) OffsetRange(partitionId:23 | fromSeqNo:156 | untilSeqNo:157) OffsetRange(partitionId:24 | fromSeqNo:1005 | untilSeqNo:1006) OffsetRange(partitionId:25 | fromSeqNo:103 | untilSeqNo:104) OffsetRange(partitionId:26 | fromSeqNo:59 | untilSeqNo:60) OffsetRange(partitionId:27 | fromSeqNo:204 | untilSeqNo:205) OffsetRange(partitionId:28 | fromSeqNo:71 | untilSeqNo:72) OffsetRange(partitionId:29 | fromSeqNo:117 | untilSeqNo:117) OffsetRange(partitionId:30 | fromSeqNo:105 | untilSeqNo:106) OffsetRange(partitionId:31 | fromSeqNo:65 | untilSeqNo:66)