Background
It is pretty easy to read about all of the benefits of Datasets in Spark including compile-time error checking, performance optimizations, etc.
When you start coding with Datasets though, you quickly find that many operations return a Data Frame instead of a Dataset. For example, dataSet.select("a", "b") will return a Data Frame (at least in many cases it will).
My Question
You can easily change a Data Frame to a Dataset after the select by using a case class and .as[CaseClassName]. Doing this after every transformation seems a little painful though.
Is converting with "as" after every transformation the proper way to stick to using Datasets? Or am I approaching this wrong in general?