使用迭代器集合的Map函数返回空迭代器scala spark

mbzjlibv  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(275)

我有下面的案例课。

case class UserEvent(id: Int, url: String)

我有下面的代码按预期工作。这段代码创建了一个包含3个userevents的迭代器对象,然后返回3的长度。

val event1: UserEvent = UserEvent(1, "Url1")
  val event2: UserEvent = UserEvent(1, "Url2")
  val event3: UserEvent = UserEvent(1, "Url3")
  val eventIterator: Iterator[UserEvent] = Iterator(event1, event2, event3)
  println(eventIterator.length) //Returns 3

但是,当我尝试Map到这个迭代器上并只接收url时,这将导致一个空迭代器。例如。

val eventUrls: Iterator[String] = eventIterator.map(
    userEvent =>{userEvent.url}
  )

println(eventUrls.length) //This returns 0

这个简单的例子给出了一些意想不到的结果。如何使应用于迭代器的Map返回一个非空迭代器?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题