scala - 如何在spark scala中迭代数组[string]?

标签 scala dictionary split flatmap

enter image description here 这是我的示例输入:

val list=List("a;bc:de;f","uvw:xy;z","123:456")

我正在应用以下操作

val upper=list.map(x=>x.split(":")).map(x=>x.split(";"))

但它抛出错误 - 错误:值拆分不是 Array[String] 的成员

任何人都可以帮助如何使用两个拆分,以便我得到答案!

提前谢谢您。

最佳答案

使用 list.map(x=>x.split(":")) 将为您提供一个数组列表。

upper: List[Array[String]] = List(Array(a;bc, de;f), Array(uvw, xy;z), Array(123, 456))

之后进行映射,您可以看到该项目将是您尝试对其运行拆分的数组。

您可以使用flatMap来代替,它首先会为您提供List(a;bc, de;f, uvw, xy;z, 123, 456),然后您可以在 ;

上拆分的那些项目上使用 map
val upper = list.flatMap(_.split(":")).map(_.split(";"))

输出

upper: List[Array[String]] = List(Array(a, bc), Array(de, f), Array(uvw), Array(xy, z), Array(123), Array(456))

关于scala - 如何在spark scala中迭代数组[string]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60306726/

相关文章:

scala - 将 RDD[(Long,Long)] 转换为 RDD[Row]

scala - 使用 mkString 与 foldRight 合并字符串列表

scala - 自定义 Scala REPL 问题

python - 为文件夹中的文件生成字典元素列表

python - 如何通过特定的字符串元素将字符串列表拆分为字符串子列表

android - Android 应用程序中的 Scala REPL

c++ - 映射/设置迭代器不兼容 - 检查映射中是否存在键

python:列表字典以某种方式耦合

java - 由于某种原因,我的 split() 在我的代码的一行中工作,但在另一行中不工作

java - 如何以 "\"作为分隔符拆分字符串?以及如何将 "\"替换为 ":"?