Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
28
Task/CSV-data-manipulation/Scala/csv-data-manipulation.scala
Normal file
28
Task/CSV-data-manipulation/Scala/csv-data-manipulation.scala
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
import scala.io.Source
|
||||
|
||||
object parseCSV extends App {
|
||||
|
||||
val rawData = """|C1,C2,C3,C4,C5
|
||||
|1,5,9,13,17
|
||||
|2,6,10,14,18
|
||||
|3,7,11,15,19
|
||||
|20,21,22,23,24""".stripMargin
|
||||
|
||||
val data = Seq((Source.fromString(rawData).getLines()).map(_.split(",")).toSeq: _*)
|
||||
|
||||
val output = ((data.take(1).flatMap(x => x) :+ "SUM").mkString(",") +: // Header line
|
||||
data.drop(1).map(_.map(_.toInt)). // Convert per line each array of String to array of integer
|
||||
map(cells => (cells, cells.sum)). //Add sum column to assemble a tuple. Part 1 are original numbers, 2 is the sum
|
||||
map(part => s"${part._1.mkString(",")},${part._2}")).mkString("\n")
|
||||
|
||||
println(output)
|
||||
/* Outputs:
|
||||
|
||||
C1,C2,C3,C4,C5,SUM
|
||||
1,5,9,13,17,45
|
||||
2,6,10,14,18,50
|
||||
3,7,11,15,19,55
|
||||
20,21,22,23,24,110
|
||||
|
||||
*/
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue