# Polars

[Polars](https://pola.rs/)は、[OLAP](https://en.wikipedia.org/wiki/Online_analytical_processing)クエリエンジンを基盤とするインメモリDataFrameライブラリです。高速で使いやすく、[オープンソース](https://github.com/pola-rs/polars/)です。

バージョン`1.2.0`以降、PolarsはHugging Faceファイルシステムへの_ネイティブ_サポートを提供します。これにより、Polarsクエリオプティマイザーのすべての利点（例：述語プッシュダウンおよび射影プッシュダウン）が適用され、クエリを完了するために必要なデータのみが読み込まれます。これにより、特に大規模なデータセットにおいて、読み込みが大幅に高速化されます（[最適化](./datasets-polars-optimizations)を参照）。

Hugging Face パス (`hf://`) を使用して、Hub 上のデータにアクセスできます:

## はじめる

始めるには、環境に`pip install`でPolarsをインストールするだけです:

```bash
pip install polars
```

Polarsをインストールした後、Hugging FaceのURLに基づいてデータセットを直接クエリできます。これには他の依存関係は必要ありません。

```python
import polars as pl

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

> [!TIP]
> Polarsには2つのAPIが用意されています: レイジーAPI (`scan_parquet`) とイージアAPI (`read_parquet`)。インタラクティブなワークロードにはイージアAPIを、パフォーマンス重視の処理にはクエリ最適化がより行えるためレイジーAPIの使用を推奨します。このトピックの詳細については、[Polarsユーザーガイド](https://docs.pola.rs/user-guide/concepts/lazy-api/#when-to-use-which)を参照してください。

Polarsはglobbingをサポートしており、複数のファイルを一度にダウンロードして単一のDataFrameに読み込むことができます。

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

### Hugging Face URL

Hugging Face の URL は、`username` と `dataset` 名から次のように構築できます。

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

パスには、`**/*.parquet` のようなグロブパターンを含めることができ、パターンに一致するすべてのファイルをクエリできます。また、サポートされていない[ファイル形式](./datasets-polars-file-formats)については、`@~parquet branch` を使用して、Hugging Face が提供する自動変換された parquet ファイルを利用できます:

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

