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)
,然后您可以在 ;
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/