如何迭代 array[string] 在 spark scala 中?
how to iterate over array[string] in spark scala?
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]
的成员
任何人都可以帮助如何使用 split 以便我得到答案!
提前致谢。
使用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))
您可以在一次地图迭代中使用带有多个定界符的 split
:
val upper = list.map(x => x.split("[:;]"))
//upper: List[Array[String]] = List(Array(a, bc, de, f), Array(uvw, xy, z), Array(123, 456))
这是我试过并且有效的代码:
val upper=list.map(x=>x.split(":")).map(x=>x.map(x=>x.split(";")))
给出输出:
upper: List[Array[Array[String]]] = List(Array(Array(a, bc), Array(de, f)), Array(Array(uvw), Array(xy, z)), Array(Array(123), Array(456)))
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]
的成员任何人都可以帮助如何使用 split 以便我得到答案!
提前致谢。
使用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))
您可以在一次地图迭代中使用带有多个定界符的 split
:
val upper = list.map(x => x.split("[:;]"))
//upper: List[Array[String]] = List(Array(a, bc, de, f), Array(uvw, xy, z), Array(123, 456))
这是我试过并且有效的代码:
val upper=list.map(x=>x.split(":")).map(x=>x.map(x=>x.split(";")))
给出输出:
upper: List[Array[Array[String]]] = List(Array(Array(a, bc), Array(de, f)), Array(Array(uvw), Array(xy, z)), Array(Array(123), Array(456)))