Datasets documentation

Spark ile kullanma

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Spark ile kullanma

Bu belge, 🤗 Datasets'in Spark ile kullanımına hızlı bir giriş niteliğindedir ve özellikle bir Spark DataFrame'inin Dataset nesnesine nasıl yüklenmesine odaklanır.

Buradan itibaren herhangi bir öğeye hızlı erişim sağlayabilir ve modelleri eğitmek için bir veri yükleyici olarak kullanabilirsiniz.

Spark'tan yükle

Dataset nesnesi, bir Arrow tablosunun sarmalayıcısıdır ve veri setindeki dizilerden PyTorch, TensorFlow ve JAX tensörlerine hızlı okumalara olanak tanır. Arrow tablosu diskten bellek eşlemeli olarak yüklenir; bu sayede kullanılabilir RAM'den daha büyük veri setleri yüklenebilir.

Spark DataFrame'den Dataset.from_spark() kullanarak bir Dataset alabilirsiniz:

>>> from datasets import Dataset
>>> df = spark.createDataFrame(
...     data=[[1, "Elia"], [2, "Teo"], [3, "Fang"]],
...     columns=["id", "name"],
... )
>>> ds = Dataset.from_spark(df)

Spark işçileri, veri setini diskte bir önbellek dizininde Arrow dosyaları olarak yazar ve Dataset oradan yüklenir.

Alternatif olarak, IterableDataset döndüren IterableDataset.from_spark() kullanarak somutlaştırmayı atlayabilirsiniz:

>>> from datasets import IterableDataset
>>> df = spark.createDataFrame(
...     data=[[1, "Elia"], [2, "Teo"], [3, "Fang"]],
...     columns=["id", "name"],
... )
>>> ds = IterableDataset.from_spark(df)
>>> print(next(iter(ds)))
{"id": 1, "name": "Elia"}

Önbelleğe Alma

Dataset.from_spark() kullanıldığında, sonuç olarak elde edilen Dataset önbelleğe alınır; aynı DataFrame üzerinde Dataset.from_spark() çağrısını birden fazla kez yaparsanız, diskte Arrow dosyaları olarak veri setini yazan Spark işi yeniden çalıştırılmaz.

Önbellek konumunu, Dataset.from_spark() fonksiyonuna cache_dir= parametresini geçirerek ayarlayabilirsiniz. İşçilerinizin ve mevcut makinenizin (sürücü) her ikisinin de erişebildiği bir diski kullandığınızdan emin olun.

Farklı bir oturumda, bir Spark DataFrame'in aynı anlamsal özeti yoktur ve bir Spark işini yeniden çalıştırıp yeni bir önbelleğe kaydeder.

Özellik türleri

Veri setiniz görüntülerden, ses verilerinden veya N boyutlu dizilerden oluşuyorsa, Dataset.from_spark() (veya IterableDataset.from_spark()) içinde features= argümanını belirtebilirsiniz:

>>> from datasets import Dataset, Features, Image, Value
>>> data = [(0, open("image.png", "rb").read())]
>>> df = spark.createDataFrame(data, "idx: int, image: binary")
>>> # Also works if you have arrays
>>> # data = [(0, np.zeros(shape=(32, 32, 3), dtype=np.int32).tolist())]
>>> # df = spark.createDataFrame(data, "idx: int, image: array<array<array<int>>>")
>>> features = Features({"idx": Value("int64"), "image": Image()})
>>> dataset = Dataset.from_spark(df, features=features)
>>> dataset[0]
{'idx': 0, 'image': <PIL.PngImagePlugin.PngImageFile image mode=RGB size=32x32>}

Mevcut tüm özellik türleri hakkında bilgi edinmek için Features belgesini kontrol edebilirsiniz.

Update on GitHub