Data Engineering Rust programming exercise
The goal of this exercise is to gain insight into how you, as an engineer, work to solve problems. These problems may consist of understanding the Rust language, what data structures to use, and what the most optimal solution is. The goal is not to 'complete' the exercise, as much as it is to demonstrate your thought pattern.
/files
/people.csv
- input data source forperson
/scores.csv
- input data source forscore
/out
/_example_01.json
- example JSON output/_example_02.csv
- example CSV output
/src
/examples.rs
- a collection of JSON & CSV example functions/main.rs
- main file
A client wants to process the people.csv
to generate a report on the most common professions.
- Generate a
.csv
file to display the most common professions - The CSV should contain the
profession
andcount
columns - The CSV should be sorted from most common to least common
A client wants to process people.csv
and scores.csv
to generate a report on the highest scores. The id
column on people.csv
should map to the id
column on scores.csv
.
- Generate a
.csv
file to display the highest scoring people - The CSV should contain the
id
,firstname
,lastname
, andscore
columns - The CSV should be sorted from highest scoring to lowest scoring
A client wants to process people.csv
and scores.csv
to generate a report on the sum of all scores grouped by profession. The id
column on people.csv
should map to the id
column on scores.csv
.
- Generate a
.json
file to display the score sum of each profession - The JSON file should contain properties
profession
which map toscore
example:
{
"doctor": 533,
"developer": 239
}