From a3c7827164ebd3a9083036328ff37562fe6e8553 Mon Sep 17 00:00:00 2001 From: idarlington Date: Sun, 26 Feb 2017 23:55:11 +0100 Subject: [PATCH 1/4] Read Contents of File --- src/main/scala/DataMunging.scala | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/main/scala/DataMunging.scala diff --git a/src/main/scala/DataMunging.scala b/src/main/scala/DataMunging.scala new file mode 100644 index 0000000..8e6a276 --- /dev/null +++ b/src/main/scala/DataMunging.scala @@ -0,0 +1,23 @@ +/** + * 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 + + + } +} From b00b85413f793afedcf37ca1b2c3e4a0cbee6ab4 Mon Sep 17 00:00:00 2001 From: idarlington Date: Sun, 26 Feb 2017 23:56:30 +0100 Subject: [PATCH 2/4] Filter Empty List Contents --- src/main/scala/DataMunging.scala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/scala/DataMunging.scala b/src/main/scala/DataMunging.scala index 8e6a276..cb965eb 100644 --- a/src/main/scala/DataMunging.scala +++ b/src/main/scala/DataMunging.scala @@ -18,6 +18,10 @@ object DataMunging { val filename = "weather.dat" val fileLines = io.Source.fromFile(filename).getLines().toList + /** filter empty list contents **/ + val filteredFileLines = fileLines.filter(l => l != "") + val lines = filteredFileLines.tail.map(l => l.split(" ")) + val filteredLines = lines.map(l => l.filter(_ != "")) } } From 349af27c75b4c329f6618282736236e10e337401 Mon Sep 17 00:00:00 2001 From: idarlington Date: Mon, 27 Feb 2017 00:37:15 +0100 Subject: [PATCH 3/4] Remove Asterisks from Data and Add Comments --- src/main/scala/DataMunging.scala | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/scala/DataMunging.scala b/src/main/scala/DataMunging.scala index cb965eb..c7b953a 100644 --- a/src/main/scala/DataMunging.scala +++ b/src/main/scala/DataMunging.scala @@ -18,10 +18,17 @@ object DataMunging { val filename = "weather.dat" val fileLines = io.Source.fromFile(filename).getLines().toList - /** filter empty list contents **/ + /** filter empty lines **/ val filteredFileLines = fileLines.filter(l => l != "") - val lines = filteredFileLines.tail.map(l => l.split(" ")) - val filteredLines = lines.map(l => l.filter(_ != "")) + /** 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)) + } } From e9a341daee4ffb3f44a763486aae75e155daae73 Mon Sep 17 00:00:00 2001 From: idarlington Date: Mon, 27 Feb 2017 00:46:49 +0100 Subject: [PATCH 4/4] Get and Print Day with Max Temperature Spread --- src/main/scala/DataMunging.scala | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/scala/DataMunging.scala b/src/main/scala/DataMunging.scala index c7b953a..e47cf9f 100644 --- a/src/main/scala/DataMunging.scala +++ b/src/main/scala/DataMunging.scala @@ -30,5 +30,11 @@ object DataMunging { /** 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)) + } }