I have commented this in other thread, but I think it can be important to clarify that:
What happen when you are working with 50 columns and gapply? Do I rewrite 50 columns scheme with it's new column from gapply operation? I think there is no alternative because structFields cannot be appended to structType. Any suggestions?