2011-07-11 46 views
5

原始数据如下所示:如何使用Scala解析空列数据的CSV数据?

YAPM1,20100901,23:36:01.563,Quote,,,,,,,4563,,,,,, 
YAPM1,20100901,23:36:03.745,Quote,,,,,4537,,,,,,,, 

第一行有额外的空列。我分析数据如下:

val tokens = List.fromString(line, ',') 

结果:

List(YAPM1, 20100901, 23:36:01.563, Quote, 4563) 
List(YAPM1, 20100901, 23:36:03.745, Quote, 4537) 

目前没有使用结果列表来推断该行有额外列的方式。我该怎么做呢?

回答

10

使用字符串split并传递-1作为第二个参数!

scala> "a,b,c,d,,,,".split(",") 
res1: Array[java.lang.String] = Array(a, b, c, d) 

scala> "a,b,c,d,,,,".split(",", -1) 
res2: Array[java.lang.String] = Array(a, b, c, d, "", "", "", "") 

仅供参考列表fromString是有利于字符串分割的弃用。