Join Data in ETL

I have two datasets: one for home country and another for citizenship. Both datasets share two common columns: country and student_id. In the home country dataset, the country column is 70% populated, leaving 30% of the rows as null. I want to fill these null values in the home country dataset using the corresponding country values from the citizenship dataset, based on the student_id. How can I achieve this?

Tagged:

Best Answers

  • ColemenWilson
    Answer ✓

    Step 1: Create a new Magic ETL Transform with your two datasets
    Step 2: Join the data on the Equality condition: student_id = student_id

    3. Add an Add Formula tile with the following formula (your field names will likely be different):
    COALESCE(country,Dataset 2.country)
    4. Step 3 uses the country value if it is populated, if it is not, it populates it from the joined value from dataset 2.
    5. Add an output dataset tile and save and run your dataflow.

    If I solved your problem, please select "yes" above

  • ColemenWilson
    Answer ✓

    Yes you can use the Alter Columns tile to drop the Country2 column.

    If I solved your problem, please select "yes" above

Answers

  • ColemenWilson
    Answer ✓

    Step 1: Create a new Magic ETL Transform with your two datasets
    Step 2: Join the data on the Equality condition: student_id = student_id

    3. Add an Add Formula tile with the following formula (your field names will likely be different):
    COALESCE(country,Dataset 2.country)
    4. Step 3 uses the country value if it is populated, if it is not, it populates it from the joined value from dataset 2.
    5. Add an output dataset tile and save and run your dataflow.

    If I solved your problem, please select "yes" above

  • Hi @ColemenWilson , thank you for your answer. When I did it, there were 2 columns: Country and Country2. Is it possible to only have 1 column: the Country?

  • ColemenWilson
    Answer ✓

    Yes you can use the Alter Columns tile to drop the Country2 column.

    If I solved your problem, please select "yes" above

  • @ColemenWilson Thank you so much!