Reload features from Parquet metadata
{'login': 'lhoestq', 'id': 42851186, 'node_id': 'MDQ6VXNlcjQyODUxMTg2', 'avatar_url': 'https://avatars.githubusercontent.com/u/42851186?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lhoestq', 'html_url': 'https://github.com/lhoestq', 'followers_url': 'https://api.github.com/users/lhoestq/followers', 'following_url': 'https://api.github.com/users/lhoestq/following{/other_user}', 'gists_url': 'https://api.github.com/users/lhoestq/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lhoestq/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lhoestq/subscriptions', 'organizations_url': 'https://api.github.com/users/lhoestq/orgs', 'repos_url': 'https://api.github.com/users/lhoestq/repos', 'events_url': 'https://api.github.com/users/lhoestq/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lhoestq/received_events', 'type': 'User', 'site_admin': False}
[{'id': 1935892871, 'node_id': 'MDU6TGFiZWwxOTM1ODkyODcx', 'url': 'https://api.github.com/repos/huggingface/datasets/labels/enhancement', 'name': 'enhancement', 'color': 'a2eeef', 'default': True, 'description': 'New feature or request'}, {'id': 3761482852, 'node_id': 'LA_kwDODunzps7gM6xk', 'url': 'https://api.github.com/repos/huggingface/datasets/labels/good%20second%20issue', 'name': 'good second issue', 'color': 'BDE59C', 'default': False, 'description': 'Issues a bit more difficult than "Good First" issues'}]
{'login': 'MFreidank', 'id': 6368040, 'node_id': 'MDQ6VXNlcjYzNjgwNDA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6368040?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/MFreidank', 'html_url': 'https://github.com/MFreidank', 'followers_url': 'https://api.github.com/users/MFreidank/followers', 'following_url': 'https://api.github.com/users/MFreidank/following{/other_user}', 'gists_url': 'https://api.github.com/users/MFreidank/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/MFreidank/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/MFreidank/subscriptions', 'organizations_url': 'https://api.github.com/users/MFreidank/orgs', 'repos_url': 'https://api.github.com/users/MFreidank/repos', 'events_url': 'https://api.github.com/users/MFreidank/events{/privacy}', 'received_events_url': 'https://api.github.com/users/MFreidank/received_events', 'type': 'User', 'site_admin': False}
[{'login': 'MFreidank', 'id': 6368040, 'node_id': 'MDQ6VXNlcjYzNjgwNDA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6368040?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/MFreidank', 'html_url': 'https://github.com/MFreidank', 'followers_url': 'https://api.github.com/users/MFreidank/followers', 'following_url': 'https://api.github.com/users/MFreidank/following{/other_user}', 'gists_url': 'https://api.github.com/users/MFreidank/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/MFreidank/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/MFreidank/subscriptions', 'organizations_url': 'https://api.github.com/users/MFreidank/orgs', 'repos_url': 'https://api.github.com/users/MFreidank/repos', 'events_url': 'https://api.github.com/users/MFreidank/events{/privacy}', 'received_events_url': 'https://api.github.com/users/MFreidank/received_events', 'type': 'User', 'site_admin': False}]
I'd be happy to have a look, if nobody else has started working on this yet @lhoestq. 

It seems to me that for the `arrow` format features are currently attached as metadata [in `datasets.arrow_writer`](https://github.com/huggingface/datasets/blob/5f810b7011a8a4ab077a1847c024d2d9e267b065/src/datasets/arrow_writer.py#L412)  and retrieved from the metadata at `load_dataset` time using [`datasets.features.features.from_arrow_schema`](https://github.com/huggingface/datasets/blob/5f810b7011a8a4ab077a1847c024d2d9e267b065/src/datasets/features/features.py#L1602). 

This will need to be replicated for `parquet` via calls to [this api](https://arrow.apache.org/docs/python/generated/pyarrow.parquet.write_metadata.html) from `io.parquet.ParquetWriter` and `io.parquet.ParquetReader` [respectively](https://github.com/huggingface/datasets/blob/5f810b7011a8a4ab077a1847c024d2d9e267b065/src/datasets/io/parquet.py#L104).

Any other important considerations?
 Thanks @MFreidank ! That's correct :)

Reading the metadata to infer the features can be ideally done in the `parquet.py` file in `packaged_builder` when a parquet file is read. You can cast the arrow table to the schema you get from the features.arrow_schema #self-assign
The idea would be to allow this :
```python 
ds.to_parquet("my_dataset/ds.parquet")
reloaded = load_dataset("my_dataset")
assert ds.features == reloaded.features 
```
And it should also work with Image and Audio types (right now they're reloaded as a dict type)

This can be implemented by storing and reading the feature types in the parquet metadata, as we do for arrow files.
{'url': 'https://api.github.com/repos/huggingface/datasets/issues/5482/reactions', 'total_count': 1, '+1': 1, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}