Transforming a list of maps representing bands
You might consider using map on Option to more cleanly access the values.

  def set_canada_as_country(band: Map[String, Any]): Map[String, Any] = {
    band.get("name").map( name =&gt; band.get("active").map(active =&gt; 
      Map("name" -&gt; name, "country" -&gt; "Canada", "active" -&gt; active))
  }


At this point, you could reasonable change the resulting type to Map[String, String].

Rather than using a list of functions, you might want to compose a new function using andThen:

Exercise.pipeline_each(Exercise.bands, Exercise.set_canada_as_country andThen
  Exercise.strip_punctuation_from_name andThen
  Exercise.capitalize_names)


That way you are only applying a single filtering function.