Good question! The reason for using 2-tuples instead of a single string is to take advantage of the ability of Pyspark to automatically infer the schema of the dataframe. 

When creating a Pyspark dataframe, the schema is automatically inferred from the data you provide. In this case, using a tuple with two values, one for the id and one for the country and total, allows Pyspark to automatically infer that the first column should be an integer and the second column should be a string. 

If you were to provide a single string value for each row, Pyspark would not be able to infer the schema automatically, and you would have to manually specify it, which can be more cumbersome.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence