Meta-level operations on a Spark data frame