diff --git a/src/main/scala/DataMunging.scala b/src/main/scala/DataMunging.scala new file mode 100644 index 0000000..e47cf9f --- /dev/null +++ b/src/main/scala/DataMunging.scala @@ -0,0 +1,40 @@ +/** + * Created by idarlington on 2/26/17. + */ +object DataMunging { + + case class weatherLine( + dayNumber : Int, + maxTemperature : Double, + minTemperature : Double + ) + + def temperatureDiff (a : weatherLine, b : weatherLine) = { + (a.maxTemperature - a.minTemperature) > (b.maxTemperature - b.minTemperature) + } + + def main(args: Array[String]) = { + /** Read Contents of file **/ + val filename = "weather.dat" + val fileLines = io.Source.fromFile(filename).getLines().toList + + /** filter empty lines **/ + val filteredFileLines = fileLines.filter(l => l != "") + + /** remove header and footer from data and split lines into Array of Strings **/ + val lines = filteredFileLines.tail.init.map(l => l.split(" ")) + + /** filter out empty indices from array and remove asterisks from data **/ + val filteredLines = lines.map(l => l.filter(_ != "").map(s => s.replaceAll("[*]", ""))) + + /** store required data in weatherline instances **/ + val weatherLines = filteredLines.map(l => weatherLine(l(0).toInt,l(1).toDouble,l(2).toDouble)) + + /** sort with temperature difference **/ + val sortedData = weatherLines.sortWith(temperatureDiff) + val maxTempSpread = sortedData.head + + println("Day " + maxTempSpread.dayNumber + " has Max Temperature spread of " + (maxTempSpread.maxTemperature - maxTempSpread.minTemperature)) + + } +}