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
.csvfile to display the most common professions - The CSV should contain the
professionandcountcolumns - 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
.csvfile to display the highest scoring people - The CSV should contain the
id,firstname,lastname, andscorecolumns - 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
.jsonfile to display the score sum of each profession - The JSON file should contain properties
professionwhich map toscore
example:
{
"doctor": 533,
"developer": 239
}