My original version had a separate `longVal`, `doubleVal`, and `stringVal`, but my impression is that people thought that unifying them according to the Avro data model is more "proper".  That said, if it doesn't work with parquet, I vote we go back to splitting them out.

One reason to be against splitting them out is that the user may not know which of the fields to access, and may have to test them.  But if they use the feature type hierarchy, then the getters should always map to the correct value type, so it's not a problem.