Parquet is only a mess if you try to mutate it, usually you consider them as immutable and have the data stored across many files.
Also batched-row access is negligible given the compression benefits you get with the columnar format, which is probably why it's still king in ML; I think given what I'm seeing in the industry and recent trends (e.g. Velox).