When a Job is run, it only processes new and updated data from the input Data Source, not the entire data source (unless it was run for the first time). Purging empties out all intermediate task outputs as if the Job has never been run before. Purging is required if you want the entire data source to be reprocessed, not just new and updated input records. For example, if a reference data source has been changed you would like to reprocess all the records according to the updated reference data, you should purge and run.
Let’s use country normalization as an example. Say originally you decided to normalize country using the Alpha ISO-2 country codes. Then later, you decide to have all countries spelled out in full, using their English name. Purging and rerunning the job will change all countries to be spelled out. Without purging, only new and updated records will be updated to have country spelled out.
When you are uploading data to a target system, it is a good practice to purge the job before running. By doing this, you'll be certain all records will be sent to the target system.