Scala 如何从cassandra事件流中获取最后一个事件

Scala 如何从cassandra事件流中获取最后一个事件,scala,akka,akka-stream,Scala,Akka,Akka Stream,我正在读一个cassandra事件流,想得到最后一个元素。我现在是这样做的: def myData: Future[Long] = readJournal(myPersistenceId) .drop(5) .take(1) .map(l => l.mydata) .runWith(Sink.head) 这是因为我知道我将获得6事件,为了获得最后一个事件,我丢弃5并获取1。但是,我想知道是否有办法做到这一点,这样我就不会硬编码drop(5)和take(

我正在读一个cassandra事件流,想得到最后一个元素。我现在是这样做的:

def myData: Future[Long] =
  readJournal(myPersistenceId)
    .drop(5)
    .take(1)
    .map(l => l.mydata)
    .runWith(Sink.head)
这是因为我知道我将获得
6
事件,为了获得最后一个事件,我丢弃
5
并获取
1
。但是,我想知道是否有办法做到这一点,这样我就不会硬编码
drop(5)
take(1)
。有没有办法让我总是参加最后一个活动?

使用或:

使用或:

def myData: Future[Long] =
  readJournal(myPersistenceId)
    .map(_.mydata)
    .runWith(Sink.last)
def myData: Future[Option[Long]] =
  readJournal(myPersistenceId)
    .map(_.mydata)
    .runWith(Sink.lastOption)