Scala是否有一种很好的方法来按列拆分CSV?
发布时间:2020-12-16 18:11:03 所属栏目:安全 来源:网络整理
导读:我有一个带列标题的csv.一列标题是“DATE”.如果我想在DATE之前生成两个CSV并且在/包括DATE之后有没有一种方法可以在没有程序循环的情况下执行此操作?我注意到大多数列表函数都适合按行过滤. 解决方法 我假设您已将数据解析为以下内容: val myDoc = List(
我有一个带列标题的csv.一列标题是“DATE”.如果我想在DATE之前生成两个CSV并且在/包括DATE之后有没有一种方法可以在没有程序循环的情况下执行此操作?我注意到大多数列表函数都适合按行过滤.
解决方法
我假设您已将数据解析为以下内容:
val myDoc = List( List("ID","NAME","DATE","DESC"),List("1","a","1990","x"),List("2","b","1991","y") ) 现在我们可以使用splitAt和unzip将列表拉开.请注意,我假设有很多关于数据的实际代码,我们要检查列表是否为空,并且标题实际上包含“DATE”列. def split(doc: Seq[Seq[String]]) = { val i = doc.head.indexOf("DATE") doc.map(_.splitAt(i)).unzip } 我们可以将它应用于我们的测试数据: scala> val (b,a) = split(myDoc) b: List[Seq[String]] = List(List(ID,NAME),List(1,a),List(2,b)) a: List[Seq[String]] = List(List(DATE,DESC),List(1990,x),List(1991,y)) 这对我来说很合理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |