diff --git a/example_file.csv b/example_file.csv new file mode 100644 index 0000000..f51ff81 --- /dev/null +++ b/example_file.csv @@ -0,0 +1,102 @@ +Warszawa;2018-09-19 05:17:32.619;9.97 +Warszawa;2018-09-20 18:44:42.468;39.02 +Warszawa;2018-09-21 11:17:42.318;33.27 +Warszawa;2018-09-22 19:25:07.568;34.85 +Warszawa;2018-09-23 08:56:57.560;-9.44 +Warszawa;2018-09-24 19:27:15.551;39.3 +Warszawa;2018-09-25 15:29:09.120;30.65 +Warszawa;2018-09-26 11:40:28.793;1.62 +Warszawa;2018-09-27 01:07:44.867;28.86 +Warszawa;2018-09-28 02:11:27.008;-5.91 +Warszawa;2018-09-29 05:16:44.020;14.23 +Warszawa;2018-09-30 00:58:33.934;-9.49 +Warszawa;2018-10-01 11:16:21.279;20.04 +Warszawa;2018-10-02 13:59:18.193;33.58 +Warszawa;2018-10-03 01:19:08.881;4.17 +Warszawa;2018-10-04 17:43:51.113;-0.26 +Warszawa;2018-10-05 15:29:43.375;0.99 +Kraków;2018-09-19 09:44:47.464;37.21 +Kraków;2018-09-20 18:54:09.334;29.66 +Kraków;2018-09-21 19:00:25.035;35.92 +Kraków;2018-09-22 19:49:29.018;35.53 +Kraków;2018-09-23 10:53:42.115;25.72 +Kraków;2018-09-24 22:22:50.956;-9.92 +Kraków;2018-09-25 05:22:06.988;3.45 +Kraków;2018-09-26 07:00:00.795;-7.15 +Kraków;2018-09-27 04:47:39.892;23.13 +Kraków;2018-09-28 07:53:19.488;24.19 +Kraków;2018-09-29 08:09:16.292;28.97 +Kraków;2018-09-30 17:20:06.574;0.08 +Kraków;2018-10-01 08:30:57.134;14.15 +Kraków;2018-10-02 17:41:10.286;-0.4 +Kraków;2018-10-03 13:39:39.436;1.51 +Kraków;2018-10-04 02:40:05.295;12.63 +Kraków;2018-10-05 23:46:29.938;28.88 +Gdańsk;2018-09-19 13:00:59.207;20.66 +Gdańsk;2018-09-20 15:58:18.704;-3.84 +Gdańsk;2018-09-21 15:30:09.718;4.11 +Gdańsk;2018-09-22 09:51:24.588;-6.81 +Gdańsk;2018-09-23 17:35:12.540;29.59 +Gdańsk;2018-09-24 00:06:00.180;-1.85 +Gdańsk;2018-09-25 09:30:35.810;32.79 +Gdańsk;2018-09-26 05:16:01.943;34.23 +Gdańsk;2018-09-27 13:31:36.269;31.19 +Gdańsk;2018-09-28 03:53:11.384;-2.86 +Gdańsk;2018-09-29 05:04:28.006;5.84 +Gdańsk;2018-09-30 19:02:58.074;3.28 +Gdańsk;2018-10-01 02:37:38.908;-9.92 +Gdańsk;2018-10-02 20:49:54.839;3.95 +Gdańsk;2018-10-03 15:06:14.164;38.43 +Gdańsk;2018-10-04 23:48:27.043;35.95 +Gdańsk;2018-10-05 12:47:34.018;-6.01 +Wrocław;2018-09-19 23:05:59.759;5.39 +Wrocław;2018-09-20 10:17:54.933;6.5 +Wrocław;2018-09-21 23:49:08.628;33.71 +Wrocław;2018-09-22 23:58:45.590;30.57 +Wrocław;2018-09-23 17:10:16.441;34.3 +Wrocław;2018-09-24 01:29:27.889;5.18 +Wrocław;2018-09-25 03:22:57.184;30.88 +Wrocław;2018-09-26 16:52:18.510;-0.21 +Wrocław;2018-09-27 14:29:03.227;16.53 +Wrocław;2018-09-28 15:30:58.333;4.95 +Wrocław;2018-09-29 01:18:26.120;30.34 +Wrocław;2018-09-30 23:35:01.930;-5.64 +Wrocław;2018-10-01 21:55:21.002;8.77 +Wrocław;2018-10-02 20:32:59.639;37.39 +Wrocław;2018-10-03 22:20:05.774;19.95 +Wrocław;2018-10-04 04:43:11.867;30.93 +Wrocław;2018-10-05 23:57:51.491;25.14 +Poznań;2018-09-19 12:38:35.735;1.48 +Poznań;2018-09-20 23:23:01.413;22.45 +Poznań;2018-09-21 16:14:48.665;-2.89 +Poznań;2018-09-22 03:10:07.834;32.33 +Poznań;2018-09-23 05:12:05.420;22.4 +Poznań;2018-09-24 01:14:54.474;31.5 +Poznań;2018-09-25 13:05:55.252;34.03 +Poznań;2018-09-26 21:44:31.028;32.77 +Poznań;2018-09-27 03:45:33.921;7.74 +Poznań;2018-09-28 10:02:19.002;18.67 +Poznań;2018-09-29 07:24:54.274;7.01 +Poznań;2018-09-30 17:43:32.273;33.37 +Poznań;2018-10-01 23:03:31.646;29.84 +Poznań;2018-10-02 01:19:15.770;35.72 +Poznań;2018-10-03 14:29:13.295;5.74 +Poznań;2018-10-04 21:32:56.124;6.24 +Poznań;2018-10-05 22:32:07.234;-9.52 +Łódź;2018-09-19 21:19:51.033;36.04 +Łódź;2018-09-20 19:01:12.392;4.65 +Łódź;2018-09-21 04:33:02.884;24.24 +Łódź;2018-09-22 03:15:29.245;-9.14 +Łódź;2018-09-23 03:35:21.291;1.79 +Łódź;2018-09-24 11:41:57.203;32.44 +Łódź;2018-09-25 07:35:08.146;6.07 +Łódź;2018-09-26 10:20:21.582;-7.0 +Łódź;2018-09-27 08:56:59.232;18.29 +Łódź;2018-09-28 12:02:35.443;23.4 +Łódź;2018-09-29 02:22:47.190;28.56 +Łódź;2018-09-30 15:00:26.789;35.3 +Łódź;2018-10-01 06:49:50.375;4.36 +Łódź;2018-10-02 11:15:21.681;-4.61 +Łódź;2018-10-03 01:25:56.397;27.49 +Łódź;2018-10-04 20:43:12.573;32.59 +Łódź;2018-10-05 12:57:09.210;25.48 diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..3a00ce1 --- /dev/null +++ b/readme.md @@ -0,0 +1,32 @@ +# Large file reading challenge + +Welcome in the recruitment challenge. +Write an application that, at the endpoint specified by you, returns the yearly average temperatures for a given city in the format array of objects with the following fields: year, averageTemperature. + +## Assumptions + +- CSV file with data is no less than 3GB in size. +- The file represents temperature measurements in the format city;yyyy-mm-dd HH:mm:ss.SSS;temp +- The content of the source file may change during the application's running + +## Example source file +[example_file.csv](example_file.csv) + + +## Example response +```json +[ + { + "year": "2021", + "averageTemperature": 12.1 + }, + { + "year": "2022", + "averageTemperature": 11.1 + }, + { + "year": "2023", + "averageTemperature": 14.1 + } +] +```