# Polars

[Polars](https://pola.rs/) es una biblioteca de DataFrames en memoria sobre un motor de consultas [OLAP](https://en.wikipedia.org/wiki/Online_analytical_processing). Es rápida, fácil de usar y de [código abierto](https://github.com/pola-rs/polars/).

A partir de la versión `1.2.0`, Polars ofrece soporte _nativo_ para el sistema de archivos de Hugging Face. Esto significa que se aplican todos los beneficios del optimizador de consultas de Polars (p. ej., el empuje de predicados y proyecciones) y Polars solo cargará los datos necesarios para completar la consulta. Esto acelera significativamente la lectura, especialmente para conjuntos de datos grandes (ver [optimizaciones](./datasets-polars-optimizations))

Puedes usar las rutas de Hugging Face (`hf://`) para acceder a los datos en el Hub:

## Primeros pasos

Para empezar, simplemente puedes `pip install` Polars en tu entorno:

```bash
pip install polars
```

Una vez que hayas instalado Polars, puedes consultar directamente un conjunto de datos a partir de una URL de Hugging Face. No se necesitan otras dependencias para esto.

```python
import polars as pl

pl.read_parquet("hf://datasets/roneneldan/TinyStories/data/train-00000-of-00004-2d5a1467fff1081b.parquet")
```

> [!TIP]
> Polars ofrece dos APIs: una API perezosa (`scan_parquet`) y una API ágil (`read_parquet`). Recomendamos usar la API ágil para cargas de trabajo interactivas y la API perezosa para rendimiento, ya que permite una mejor optimización de consultas. Para obtener más información sobre este tema, consulte la [guía de usuario de Polars](https://docs.pola.rs/user-guide/concepts/lazy-api/#when-to-use-which).

Polars admite globbing para descargar varios archivos a la vez en un único DataFrame.

```python
pl.read_parquet("hf://datasets/roneneldan/TinyStories/data/train-*.parquet")
```

### URLs de Hugging Face

Una URL de Hugging Face se puede construir a partir del `username` y el nombre del `dataset` de la siguiente manera:

- `hf://datasets/{username}/{dataset}/{path_to_file}`

La ruta puede incluir patrones de globbing como `**/*.parquet` para consultar todos los archivos que coincidan con el patrón. Además, para cualquier [formato de archivo](./datasets-polars-file-formats) no compatible, puede utilizar los archivos parquet convertidos automáticamente que Hugging Face proporciona mediante la `@~parquet branch`:

- `hf://datasets/{my-username}/{my-dataset}@~parquet/{path_to_file}`

