2011-07-11 26 views
5

Los datos en bruto se parece a lo siguiente:¿Cómo uso Scala para analizar datos CSV con columnas vacías?

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

La primera fila tiene columnas adicionales vacías. Me analizan los datos de la siguiente manera:

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

El resultado:

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

Por el momento no hay manera de utilizar las listas resultantes de deducir las filas que tenía las columnas adicionales. ¿Cómo hago esto?

Respuesta

10

¡Use la división de cadenas y pase -1 como segundo argumento!

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, "", "", "", "") 

FYI Lista deString está en desuso en favor de la división de cadenas.

Cuestiones relacionadas